• ベストアンサー

異なる算出の仕方

合計を求める式を探しています。 E33に合計を出しています。 例えば、 Cの列に「あ・い・う・え・お・A・B・C・D・E」 と各行に文字を入力して となりのDの列に数字を入力しています。 「あ~お」の場合は、D列の数字をプラス 「A~E」の場合は、D列の数字をマイナス させて、D列(D8~29)の合計をE33に求めたいのですが、 どのような方法がありますでしょうか? IFを使ってやればいいのかなと思い、 行っているのですが、上手く出来ません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

>結果は #VALUE!となってしまいます。 ちゃんとデータ範囲を変更してますか? それから、 >これの答えを100としたいです。 -100ですよね、質問の条件なら。 とりあえず、アルファベットが全・半角や大・小文字がある場合も考慮して、以下の数式で試してみて下さい。 =SUMPRODUCT(ISNUMBER(FIND(UPPER(ASC(C8:C11)),"ABCDEあいうえお"))*(ISERROR(FIND(UPPER(ASC(C8:C11)),"ABCDE"))*2-1),D8:D11) (No.4の補足の条件なら、「-100」になるはずです。) 当方では、上手くいっています。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

#1です。丁寧に例まで上げて説明した積もりですが。 他の回答に出ている「あ・い・う・え・お・A・B・C・D・E」は「文字通り」にとっていません。例えば売上なら+、経費なら-などの隠喩であると解釈しました。 VLOOKUP関数はビジネスなどでは大切な関数です。なじみがないなら、WEB照会するか、解説書を読むこと。 どこかテーブルに2列をとって (D列)  (E列) 給料     1  アルバイト  1  食費    -1  預金利息   1 預金引き出し 1 会費    -1 医療費   -1 などを作ります。 それをVLOOKUP関数で表引きして会費が出てきた行のC列に1、給料が出てきた行のC列に1を、セットします。 後は「計数のB列の数字」と「+1、-1のセットされているC列」を同行同志を掛け算し、加えると望みの合計が出るのではと解釈しました。Sumproduct関数は a1*c1+a2*c2+a3*c3+・・・ を出すわけです。c1、c2、c3・・は1か-1です。 1,2,3・・は行数字です。

全文を見る
すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

こんにちは。maruru01です。 私も一発ネタで。 データがC1~D10にあるとすると、 =SUMPRODUCT(ISERROR(FIND(C1:C10,"ABCDE"))*2-1,D1:D10) です。 もしC列の値が、「あいうえおABCDE」以外の場合は無視するなら、 =SUMPRODUCT(ISNUMBER(FIND(C1:C10,"ABCDEあいうえお"))*(ISERROR(FIND(C1:C10,"ABCDE"))*2-1),D1:D10) という感じになります。

sakura0123
質問者

お礼

すいません、上手くいかないみたいです。。。 結果は #VALUE!となってしまいます。 C8[A] D8[100] C9[B] D9[150] C10[あ] D10[50] C11[い] D11[100] という風な感じで入力されています。 これの答えを100としたいです。 すみませんがよろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

じゃぁ、一発ネタ。 =sign(code(C8)-9200) とすると、C8が文字コード表でひらがな以降だと1、2バイト英字以前 だと-1になります。ということは、 E33: =sumproduct(sign(code(C8:C29)-9200), D8:D29) です。が、こいつはC8:C29に空欄があると#VALUEエラーになりますの で、ちょいと細工をしてやらないとマズいですね。空欄の場合は1に するなら、 E33: =sumproduct(sign(code(C8:C29&"あ")-9200), D8:D29) でいいでしょう。

全文を見る
すると、全ての回答が全文表示されます。
  • kazh
  • ベストアンサー率31% (10/32)
回答No.2

配列数式を使って計算してみるのはどうでしょうか? まず、D32のセルに(どこでもいいけど)=SUM(IF((C8:C29="あ")+(C8:C29="い")+(C8:C29="う")+(C8:C29="え")+(C8:C29="お"),D8:D29,"")) と入力し[Ctrl]+[Shift]+[Enter]と3つのキーを同時に押すと入力した式が{}で囲まれます。同時にあ~おに対応する合計が表示されます。同じようにして、D33セルに=SUM(IF((C8:C29="A")+(C8:C29="B")+(C8:C29="C")+(C8:C29="D")+(C8:C29="E"),D8:D29,""))で[Ctrl]+[Shift]+[Enter]で確定します。 ここまでくればE33に=D32-D33とすれば結果が得られると思います。ちょっと複雑でしょうか?

sakura0123
質問者

お礼

すみません、何度か試していましたら出来ました。 ありがとうございます! もうすこし簡単な式だとなおさらうれしいのですが、 出来ただけでも、とても助かりました!

sakura0123
質問者

補足

書き込みありがとうございます。 やってみたのですが、上手く行きませんでした・・・ =ボタンで計算式を見るとはちゃんと答えが出ているのですが、その結果がセルに反映してません。 「0」と出てしまいます。 {}を取ると#VALUE!となってしまいます。 なぜでしょうか。。。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

テストデータA1:B9 a 2 s 3 d 4 s 5 d 6 h 7 b 8 a 9 f 10 テーブル D1:D9 a 1 b 1 c -1 s -1 f 1 g -1 h 1 d 1 (式1) 空き列C列のC1へ式=VLOOKUP(A1,$D$1:$E$8,2,FALSE) 下へ複写。C1:C10は 1 -1 1 -1 1 1 1 1 1 -1 (式2) 例えばB11セルに=SUMPRODUCT(B1:B10,C1:C10) (結果) 答えは2+4+6+7+8+10-(2+5+2)=36

sakura0123
質問者

お礼

すみません、全然わからないみたいです・・・ それほどエクセルに親しんでいないので、 もうすこし簡単に(すみません)教えていただけると助かります。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プラスマイナスで比べる関数。

     初めまして、よろしくお願いします。 このような表で    A   B   C   D   E   F 1    2 5 -3  2 -1 3 2 -4 -4  2 412 -8  5 -3 5 7 -5 -3 -4 6 3 -2  3  1 7 6 -1  6  5 Aにはプラスの数字が、B列にはマイナスの数字が入ります。C列の数字がプラスならばB列の数と比べ、マイナスならばA列の数と比べて、Dに Cがプラスならば  C+Bの数字 Cがマイナスならば  C+Aの数字、ただし”3行”のようにA<-(C)の場合はプラスに条件付きで表示できるようにしたいと思います。  良い関数表示をご存じでしたら、よろしくお願いします。

  • 検索の仕方を教えて下さい

    Excelの検索の仕方を教えて下さい。 下記のような表があります。  A B C D E D … 1 あ い う え お か 2 1 A氏 5 3,198 35 計算式       6 3,215 27       7 3,148 41       8   0 0       9   0 0 7 2 B氏 5 18,000 25       6 17,250 41       7 18,140 30       8    0 0       9    0 0 1行目には、文字列が入力されています。 A2~A6・B2~B6及びA7~A11・B7~B11はセルが結合してあり、それぞれ1つのセルになっています。 D2に計算式を入れる場合ですが… 別のシートに表があり、=IF(Sheet2!A1=0,0,ここからの計算式です。) Sheet2のA1には数字の1が入力されています。 まず、A2の1という数字を検索し、次にC列の5を検索し、5の横列E列の数字(3,198)を求める。 C列とE列の交わる値を結果と出したいのです。 =IF(Sheet2!A1=0,0,VLOOKUP(Sheet2!A1,A2:E11,INDEX(C2:E11,MATCH(5,C2:C11,0),MATCH("え",C2:E2,0)))) としたのですが、計算結果は#REF!です。 どのように計算式を立てれば良いのでしょうか?

  • IF関数

    セルA1に例えば2000とあり、B1に例えば30と数字が入った場合はD1にA1の2000に30プラスになり2030と出て、C1に例えば30と数字が入ったらマイナスされて1970となるようにしたいのです。 D1のセルにIF(B1<>"",A1,A1-C1)と入力してもプラスはしてくれるのですがマイナスの方はなりません。 どうか教えてください。

  • エクセルでこんな事出来ます?

    エクセル2000で教えて下さい。 ABCDの列に任意の数字が入ります。 例えば     A   B   C   D 1  -10 -20 -30  60 2   50 -30  0  -20 3   10  30 -25 -15 のように同じ行で4つのセルをプラスマイナスすると等しくなります。 数値の入力は小さい数字(マイナスの大きい数字)から順番に入力されていきます。 最後に一番大きい数字が入るように式を入れたいのです。 例で言うと1行目ではD1、2行目ではA2、3行目ではB3の答えが自動で入るようにしたいのです。 列は4列のみです。マイナスの数値は最低でも1つ入ります。   

  • Excelの複数の条件にあった式を教えて下さい。

       A     B     C    D    E 1   4.7          16    8    3 2  5.8          0.0   3.0   6.0 3  4.5 4  2.16 5  3.55    ・    ・      ・    ・   Aの列には1日の平均気温が入力されています。(A31まで) B1に、「A1が16℃以上だったら0.0、8℃以上16℃未満だったら3.0、3℃以上8 ℃未満だったら6.0」と式を作り、B2から下の欄も、「  」内の条件でした いのですが、教えてもらえないでしょうか? 宜しくお願いします。 あらかじめ、C1~E1に16℃、8℃、3℃と言う意味で数字を入れています。 C2~E2にも、条件を満たしたら、この数字になりなさいという意味で数字を 入れています。 IF文を使ってB1に =IF(A1>C1,”0.0”,IF(D1≦A1>C1,”3.0”,IF(E1≦A1>D1,"6.0",""))) と式を入れたのですが、#NAMEとエラーが出てきます。

  • エクセルで複数のセルの合計をIF関数も含めて出す方法

    初歩的だと思うのですが・・ 異なった文字が入った各セルの合計を別セルにてIFを使用し、数字を出しながらなおかつ集計する方法がわかりません。  A   B    C   D 1 い   ろ 2     は   に   3 ほ       4 へ   と 5 A列に文字が入ると常に 500 B列に文字が入ると常に 200 C列に文字が入ると常に 100 として、D列にA-Cの合計(何もなければ空欄)を出したいのです。この場合だとD1=700, D2=300, D3=500...となるように。 IF(A1="","",500)+IF(B1="","",200)+IF(C1="","",100) のちゃんとした関数式を教えてください。よろしくお願いします。。

  • IF関数の複数条件を教えてください

    記号  結果    プラス  マイナス A     B     C       D 1    1500    1500      0 3    -1500      0   -1500 2     空白    1500     0 上記のように記号を入力するとその数値によって結果を表したいのですが? 記号1を入力すると プラス列の数字を表し 記号3を入力すると マイナス列の数字を表す。 記号2を入力すると空白 になるようにしたいのですが? 宜しくお願いいたします。

  • 条件がある列の集計の仕方

    数字が入っている列にもうひとつ条件をつけてその合計を求めたいのですが、関数が成り立ちません・・。 A列 B列 C列 D列 A  1      3 B  10  W  10 C  10      1 D  1   W  22  E  5      7 F  5   W 33 B列=1で、C列<>W(C列=0でもいいのかな?)のD列の合計を求めたいのです。 例の答えは、1=3 10=1 5=7となるようにです。 よろしくお願いします。

  • エクセルの条件範囲と合致したもの

    エクセルの条件範囲と合致したもの こんにちは。http://okwave.jp/qa/q5924759.htmlで質問していたのですが、 うまくいかないので、教えてください。 たとえば、同じシートで、 A1/B1/C1/D1・・・・・・←セル列 (スラッシュはセルだとします) A /1 /A /1 B /2 /B /2 D /3 /C E /4 /D /3 G /5 /E /4 I /6 /F / このように、列同士(A1の列とC1の列)が同じものがあった場合、A1の隣のセルであるB1のセルの数字をA4のセルに記載したい場合の数式を教えていただきたいです。D1に新たに追加されたものに関しては空白をしたいのです。 =IF(COUNTIF($A$1:$A$6,$C$1:$C$6)=0," ",IF(COUNTIF($A$1:$A$6,$C$1:$C$6)=1,B1)) この式を考えましたが、D1の列のDの部分の数字が"4"と記載されてしまい、本来なら"3"を 記載したいのですが、ずれてしまいます。 たぶん、条件の範囲のものとIFを合体させた数式になるのかなって思うのですが、 もし数式を教えていただければ幸いです。 何度も質問してすみません。。。よろしくお願いいたします。

  • EXCELの式を宜しくお願いします。

    以下の式をお教え下さいませ。   A   B   C       D 1 100 10 100←入力   10   2 200 30 20 3 300 50 70 4 100 20 ↑ 5 100 70        結果数値 VLOOKUPとIF関数ぐらいで、何とかなりそうですが、なりません。 C列に目的の数字を入力し、それに対応するB列の数字(この場合10,20,70)をD列に出力したいのですが・・主旨が分かられますでしょうか?宜しくお願いします。

専門家に質問してみよう