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

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

新規登録して質問してみよう
ただいま回答率
85.51%

Q&A

解決済

5回答

3436閲覧

Excel 文字に値を設定

ken22

総合スコア13

1グッド

0クリップ

投稿2017/01/15 12:01

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

Wolf👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2017/01/15 12:23

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

2017/01/15 15:03

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

2017/01/15 16:28 編集

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

2017/01/15 17:38

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

回答5

0

ベストアンサー

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 12:23

rrryutaro

総合スコア146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

seastar3

2017/01/15 13:07

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

2017/01/15 13:13

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

2017/01/15 13:16

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

2017/01/15 15:14 編集

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

2017/01/15 15:36

VBAを使わなくても出来そうな方法が無いか思案してみましたが、思いつきませんでした。 例えば、次のようなことが出来ればよかったと想像しています。 "A"という文字列には別途(何らかの方法で)数値で 5 を設定。 "B"という文字列には別途(何らかの方法で)数値で 2 を設定。 =SUMEX(B2:B4) (SUMEXというワークシート関数は存在しないですが)SUMEXはその範囲のセルに設定されている文字列に設定されている数値を取得してその合計を返す。 といった感じでしょうか。 Javaの経験などがおありなので、Excelで変数をセルに設定して、その変数が持っている値から合計を出せれないものなのかと考えられたのだと、思いますが、セルに設定した内容を変数のように扱う方法はないかと思います。 Excelは表計算ですから、そのような仕組みを必要としないからと考えられます。 このためやはり、別途"A"や"B"に情報を割り付ける仕組みが必要になります。 それが、今回の回答の例であったり、他の回答者の回答にあるVBAでの解決かと思います。 VBAであれば色々と実現できるかと思いますので、他の回答者の方のコードを試してみていただいて、つまづいたらまたご質問ください!
ken22

2017/01/16 00:46

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

0

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

投稿2017/01/16 01:27

kjml

総合スコア219

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

投稿2017/01/15 13:01

seastar3

総合スコア2285

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ken22

2017/01/15 15:08 編集

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

2017/01/15 15:43

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

2017/01/16 00:44

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

0

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

VBA

1Public Function hyoutei(a) 2 b = "" 3 Select Case a 4 Case Is >= 85 5 b = "A" 6 Case Is >= 70 7 b = "B" 8 Case Is >= 40 9 b = "C" 10 Case Is >= 30 11 b = "D" 12 Case Else 13 b = "E" 14 End Select 15 hyoutei = b 16End Function

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

投稿2017/01/15 12:49

seastar3

総合スコア2285

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ken22

2017/01/15 15:16

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

0

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

Excel

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

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

投稿2017/01/15 12:32

seastar3

総合スコア2285

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rrryutaro

2017/01/15 13:00

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

2017/01/15 15:14

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問