質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • Excel

    1893questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

Excel 文字に値を設定

解決済

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 1,108

ken22

score 9

ExcelでもJavaのようにA=5、B=2を設定しA+B=7のように計算できないのでしょうか?例えばイメージ説明
この様な計算です。
方法があればご教示願います。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • otn

    2017/01/15 21:23

    同じ"A"でも科目によって点数を変えると言うことですか?

    キャンセル

  • ken22

    2017/01/16 00:03

    上のに関しては一例なのですが図の状態でA+A+B=をしたときに合計が出せるようにAとゆう文字を変数として扱い数値を入れて計算できないのかなと思い質問させていただきました。

    キャンセル

  • otn

    2017/01/16 01:22 編集

    ↑それは元々の質問文に書いてあることの繰り返しですね。質問文の例は間違いで、Aは科目にかかわらず常に同じ点数と言うことですか?

    キャンセル

  • ken22

    2017/01/16 02:38

    すみません。はい、上記の図ではAは同じ値ではありませんが、作りたいものはAは科目に関わらず常に同じ値です。

    キャンセル

回答 5

checkベストアンサー

+2

ken22さん、はじめまして。

もしかすると、要望とは異なる方法かもしれませんが、VLOOKUPを使う手立てがあるかと思いました。
別途評価別の表を用意して、そこから点数を持ってくる方法です。

ここでは、説明を簡単にするため、同シート内に表を用意しました。(実際には別シートに刷るなどが良いです)
イメージ説明

別途点数の列を追加して、E2:F3の範囲を参照して、点数を取得するようにしています。
C2:C4には次のようにしています。

=VLOOKUP(B2, $E$2:$F$3, 2)

VLOOKUPの第1引数が、検索値で、第2引数の範囲に$E$2:$F$3を指定しています。検索値で取得した値と、範囲で指定した1列目の値と一致する項目があったら、第3引数で指定した2の値が、範囲で指定した列の番号なので、C2のセルには、5が返ってきています。

もし、数学のAが90、科学のAが99、英語のBが77のようにさらに細かく指定したい場合、これにもう少し工夫が必要ですが、ここでは固定値の評価ととらえていますので、とりあえずの方法を紹介してみました。

そうではなくて、評価の列(B列)で、合計を出したいのであれば、この方法は要望に適ったものではないですが、その場合、もう少し難しいことをしなくてはならなくなります。

また、総合得点の欄に数値と共に"点"を表示したい場合は、「セルの書式設定」にて#"点"とするなどの手があります。
イメージ説明

この説明ではいまひとつ分からないないけど、VLOOKUPでやりたい事が出来そうであれば、情報は一杯ありますので、調べてみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/15 22:07

    rrryutaroさん、アドバイスありがとうございます。
    [Alt]+[F11]のショートカットは使ったことがありませんでした。早速試しましたが便利ですね。
    これはWordもAccessもPowerPointも同様なのを確かめました。有効に使わせて頂きます。

    キャンセル

  • 2017/01/15 22:13

    ※本来の回答とは関係の無いやり取りですみません。
    お役に立ててよかったです!
    Qiitaで日々、ショートカットキーの紹介をしていますので、よろしければ参考にしてください。
    http://qiita.com/rrryutaro/items/74d60a6e31ff149c5710

    キャンセル

  • 2017/01/15 22:16

    さっそくストックさせてもらいました。

    キャンセル

  • 2017/01/16 00:12 編集

    返信ありがとうございます。
    図まで作っていただきありがとうございます。
    自分としてはAとゆう文字を変数として扱えないかなと思い質問させていただきました。
    ですがseastar3さんの方法も分かりやすく私でもできそうな感じがしたので、やってみたいとおもいます。
    ありがとうございます。

    キャンセル

  • 2017/01/16 00:36

    VBAを使わなくても出来そうな方法が無いか思案してみましたが、思いつきませんでした。
    例えば、次のようなことが出来ればよかったと想像しています。

    "A"という文字列には別途(何らかの方法で)数値で 5 を設定。
    "B"という文字列には別途(何らかの方法で)数値で 2 を設定。

    =SUMEX(B2:B4)

    (SUMEXというワークシート関数は存在しないですが)SUMEXはその範囲のセルに設定されている文字列に設定されている数値を取得してその合計を返す。

    といった感じでしょうか。
    Javaの経験などがおありなので、Excelで変数をセルに設定して、その変数が持っている値から合計を出せれないものなのかと考えられたのだと、思いますが、セルに設定した内容を変数のように扱う方法はないかと思います。
    Excelは表計算ですから、そのような仕組みを必要としないからと考えられます。

    このためやはり、別途"A"や"B"に情報を割り付ける仕組みが必要になります。
    それが、今回の回答の例であったり、他の回答者の回答にあるVBAでの解決かと思います。

    VBAであれば色々と実現できるかと思いますので、他の回答者の方のコードを試してみていただいて、つまづいたらまたご質問ください!

    キャンセル

  • 2017/01/16 09:46

    返信ありがとうございます。
    詳細に教えていただきありがとうございます。
    VBAについて調べてみたいと思います。
    ありがとうございました。

    キャンセル

+1

得点がB2セルからB4セルまで入っているとすればB5セルに、=SUM(B2:B4)を埋め込めば合計は出ます。
これはご存じでしょうがExcel VBA を使えば、開発タブから"ボタン1"オブジェクトを配置し、以下の
コードを設定すれば、B4セルに関数式ではなく直接に値を埋め込みます。

Sub ボタン1_Click()
  Dim kamokusuu, goukeiten, kai
' 科目数 kamokusuu を仮に3とする。
  kamokusuu = 3
  goukeiten = 0
' 点数の入っている列をB列とし、点数の開始行を2行目とする。
  For kai = 1 To kamokusuu
    goukeiten = goukeiten + Cells(kai + 1, 2)
  Next
' 最後の科目の次の行、つまりkamokusuu + 2 行に合計点を代入する。
  Cells(kamokusuu + 2, 2) = goukeiten
End Sub

念のために開発タブを使えるようにするには、Excel2013の場合、ファイルタブを選び、上から7番目の「リボンのユーザー設定」を選びます。そこで現れる設定画面の右側の「リボンのユーザー設定」の中の「開発」のチェックボックスにチェックを入れると使えるようになります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/15 22:00

    ご存知かもしれませんが、[Alt] + [F11]で[Microsoft Visual Basic]のウィンドウが表示されますので、ともかくVBAを打ち込みたい時はこのショートカットキーが便利です!

    キャンセル

  • 2017/01/16 00:14

    返信ありがとうございます。
    私自身まだ初心者なもので上記のコードは難しいかもしれませんが、やってみようと思います。
    ありがとうございます。

    キャンセル

+1

セル範囲に名前をつけて計算させることをお尋ねかも知れません。
数式タブを選び、「名前の定義」で、例えばB2セル単独に「数学得点」、B3セル単独に「科学得点」、B4セル単独に「英語得点」と名前を指定します。
そして、B5セルに"=数学得点+科学得点+英語得点"と埋め込むと変数名を操作しているような表記で計算ができます。もちろん、"=B2+B3+B4"も普通に使えます。
頻繁に参照したり特に重要だったりするセルや範囲は名前で定義し使うことがあります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/16 00:06 編集

    返信ありがとうございます。
    セル名は数学得点でもいいのですがセル内の文字Aを変数として扱い数値を入れられないのかなと思い質問させていただきました。

    キャンセル

  • 2017/01/16 00:43

    ご要望の点はセルそのものがプログラムを持てるかという課題になってきますが、単純に変数名がA,B,C・・・と法則的に決めてあるのなら別シートの同じ行の対応した列に値を代入するようなイベントドリブンコードをWorksheet_Changeプロシジャーに準備して保存していき、合計を出したいセルでは、各アルファベットに対応した別シートの値を合計していくプログラムを働かせるかするといった手順が思い浮かびます。
    ただ、何のためにこのようなメタ表現が必要なのかがよく分かりませんね。

    キャンセル

  • 2017/01/16 09:44

    返信ありがとうございます。
    なるほど確かに表計算ですもんね。
    イベントドリブンコード調べてみたいと思います。
    ありがとうございました。

    キャンセル

+1

もう解決済みですが、
A=5点、B=2点とするなら、評価の範囲にある評価の個数を数えて、それを使って
(Aの個数)×(Aの点数)+(Bの個数)×(Bの点数)と計算すればよいのではないでしょうか?
イメージ説明
具体的には、セルB5に
=COUNTIF(B2:B4,"A")*F2+COUNTIF(B2:B4,"B")*F3
と入れればよいのではないかと思います。
(セルB5の書式設定は「0"点"」などにしておきます。rrryutaroさんのやり方を参考に)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

また、Visual Basic の開発ウインドウ上のModule1の中に

Public Function hyoutei(a)
  b = ""
  Select Case a
    Case Is >= 85
      b = "A"
    Case Is >= 70
      b = "B"
    Case Is >= 40
      b = "C"
    Case Is >= 30
      b = "D"
    Case Else
      b = "E"
  End Select
  hyoutei = b
End Function


等と自作の関数を用意しておけば、評定の列に"=hyoutee(Sheet2!B2)"のように埋め込むことで自作のhyoutei関数が使えます。なお、評定の点数範囲は仮のものです。
わざわざVBAを使うメリットは、こういう面で発揮されます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/16 00:16

    返信ありがとうございます。
    点数で評価したいのではなくAに数値を入れられないかと思い質問させていただきました。
    ですが、評価付けの際は上記のコードを使わせていただきたいと思います。
    ありがとうございました。

    キャンセル

同じタグがついた質問を見る

  • Excel

    1893questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。