• ベストアンサー

エクセルのif関数について教えてください

エクセルのif関数について教えてください 添付のAの表があります。 これをBのような表にして、あめは毎月いくらだったのか、 それぞれの金額の推移を知りたいです。 どのような関数を入れればいいのか教えてください。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! すでに回答は出ていますので、参考程度で目を通してみてください。 余計なお世話かもしれませんが、品物も重複なしに表示できるようにしてみました。 ↓の画像のように作業用の列を1列設けます。 作業列D2セルに =IF(COUNTIF($A$2:A2,A2)=1,ROW(),"") という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。 そして、F2セルに =IF(COUNT(D:D)<ROW(A1),"",INDEX(A:A,SMALL(D:D,ROW(A1)))) G2セルに =IF(OR($F2="",G$1=""),"",SUMPRODUCT(($A$2:$A$1000=$F2)*($C$2:$C$1000=G$1)*($B$2:$B$1000))) としてこのG2セルを列方向(右)にオートフィルでコピーします。 最後にF2~コピーした最後の列までを範囲指定し、最後の列のフィルハンドルで 下へコピーすると画像のような感じになります。 尚、数式は元データの1000行目まで対応できる数式にしています。 そして、日付はシリアル値ではなく文字列として考えています。 以上、参考になれば幸いです。m(__)m

hanako_gogo
質問者

補足

もう1点教えてください。 2009年2月の煎餅は「0」なのですが、これをB表で空欄にしたい場合は どのような関数を追加すればいいのでしょうか? よろしくお願いいたします。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! 補足に「0」の場合は空白にしたいということがありましたので・・・ 前回の表をそのまま使わせてもらって、 G2セルに =IF(OR($F2="",G$1="",SUMPRODUCT(($A$2:$A$1000=$F2)*($C$2:$C$1000=G$1)*($B$2:$B$1000))=0),"",SUMPRODUCT(($A$2:$A$1000=$F2)*($C$2:$C$1000=G$1)*($B$2:$B$1000))) という数式を入れ、あとは前回同様列方向と行方向にオートフィルでコピーすれば大丈夫だと思います。 尚、他の方法で簡単な方法といえば、 当方使用のExcel2003の場合ですが メニュー → ツール → オプション → 「表示」タブで 「ゼロ値」のチェックを外して、OK これで前回の数式のままでも「0」のセルは空白になります。 以上、お役に立てば良いのですが・・・m(__)m

hanako_gogo
質問者

お礼

完璧です! 迅速なご回答ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

ご質問に書かれたその通りのデータが記入してあって嘘はないとします。 Excel2007では =SUMIFS($B$2:$B$10,$A$2:$A$10,$A14,$C$2:$C$10,B$13) のように。 それ以前のエクセルでは =SUMPRODUCT(($A$2:$A$10=$A14)*($C$2:$C$10=B$13), $B$2:$B$10) のように。 実はやっぱり嘘でしたA表には年月じゃなく年月日でデータが入っていたときは =SUMPRODUCT(($A$2:$A$10=$A14)*(TEXT($C$2:$C$10,"yyyy年m月")=B$13), $B$2:$B$10) など。

hanako_gogo
質問者

お礼

回答ありがとうございます!

noname#141833
noname#141833
回答No.1

はじめまして。 とりあえず画像をご参照ください。 SUMPRODUCT関数はテーブル相互間の「積」の合計を計算してくれます。 =SUMPRODUCT(($A$1:$A$12=$A17)*($C$1:$C$12=B$16)*($B$1:$B$12)) 条件合致だと1、条件不合致だと0がかけられますので、条件に合致する場合のみ合計されることになります。

hanako_gogo
質問者

お礼

回答ありがとうございます!

関連するQ&A

  • excelでのIF関数

    excelで表を作っています。 0~29なら「2」、30~59なら「3」、60~79なら「4」、80~100なら「5」という関数を作りたいのですがうまくいきません。 『=IF(A1="","",IF(A1>=85,"A",IF(A1>70,"B",IF(A1>=50,"C",IF(A1>=30,"D","E")))))』というほかの方の質問されているIF関数を参考に作ったのですが…だめでした。 わかる方がいれば教えてください。 vlook関数は使わずに、if関数で作りたいです。 よろしくお願い致します。

  • エクセルのIF関数について

    エクセルIF関数について教えていただきたいのですが A    B   C   5    5 -5       -5 上記のようにIF関数を組みたいのですが Aの値がプラスならBへ表示 Aの値がマイナスならCへ表示したいのですが IF関数で表すならどう関数を組めばよろしいでしょうか?

  • エクセルのIF関数

      a b c イ 1 2 3 ロ 4 5 6 ハ 7 8 9 テスト問題を二元にし、このような組み合わせ表で、1~9の番号をマークシートに記入させることにしました。 手持ちの解答早見表を、「1ならイa」「3ならイc」のようにエクセルで作りたいのですが、IF関数を作ってもエラーばかり出てしまいます。どなたかこのIF関数が分かる方、教えていただけますか。 1  3   6 ・・・・ イa イc  ロc

  • エクセルでif関数を組んだのですが。。。

    エクセルでif関数を使って式を造ったのですが、上手く条件を選択 しません。何がおかしいのか分からない状態でこまっています。  どなたかお詳しい方、教えて下さい。 詳細は添付資料にあります。 a1 20 b1 1 c1 -1 d1 合 e1 19.5 =if((a1-abs(c1))<=e1<=(a1+b1),"合","不合") この式を入れると d1は不合になってしまいます。

  • エクセルIF関数で、

    エクセルIF関数で、 IF(論理値,A,B)はわかるのですが、 その応用のように、 1であれば○、2であれば△、3であれば× というような、より複雑な式の立て方があるのでしょうか? 宜しくお願いします。

  • Excelの関数『IF』にて・・・

    EXCELにて、関数IFを使って一覧表から 自動入力をしたいと考えています。 例えば、以下のようにしてセル『C1』の数字に 応じて、自動を試みたい時 =IF($C$1>80,"=A1",IF($C$1>70,"=B1","=C1")) =A1,=B1,=C1 の場所を文字列としてしか読み取ってくれません =A1,=B1,=C1では無く=A1,=B1,=C1のセルに入力されてる 数式(他のセルの値)を、表示したいんですが どのようにすれば可能でしょうか? 何度やっても「=A1」と、そのまま文字列として出て来ちゃいます。

  • エクセルのIF関数について

    フリーでダウンロードしたエクセルのファイルなんですが IF関数で分らない部分があります。 エクセルはマクロ以外なら大体マスターしたのですが どうもIF関数だけは苦手で… =IF(D12="",IF(D11="",IF(D10="",D9,D10),D11)) という式なんですが、どこで区切っていいのか分りません。 IF関数は =IF(論理式,A,B)という形が基本ですよね。 上式にあてはめると 論理式は D12="" となるのは分るのですが A,Bが分りません。 Aは IF(D11="",IF(D10="",D9,D10) Bは D11 と分けるとAのカッコの数が合わない。 Aを IF(D11="",IF(D10="",D9,D10),D11) とするとBが無くなる? 式がおかしいのかな?とも思ったのですが ちゃんと計算はされてるようだし… かれこれ2時間ほど悩んでいますが もう頭が混乱してきました… すいませんがお助け下さいm(__)m

  • エクセル IF関数について

    エクセルのIF関数で困っています。 A1のセルは、他のセル(B1)から飛ぶような設定をしている(=B1) B1に入力しない事があるで、A1の「0」に表示しないようにユーザー設定で「#,##0;"△ "#,##0; 」としている。 A2のセルには、A1に文字が表示されたときのみ「日」と表示するようにIF関数を入れた。「=IF(A1="","","日")」 しかし、A1に何も表示されていないのに、「日」が表示されてしまう。 試しに「=IF(A1="0","","日")」としたが、これでも「日」が表示されてしまう。 このような場合、IF関数はどうすればいいのでしょうか。 説明が下手ですいません。 どうか教えてください。

  • excelのand関数、IF関数について

    エクセルのand関数、IF関数について質問です。 非常に簡単なことで申し訳ないのですが、仮にセルA2が5でかつセルB2が0の時にtrueとしたいときの関数は=and(A2=5,B2=0)であっているでしょうか。また、これをIFの関数で表す場合、=IF(A2=5,IF(B2=0,1,0),0)で同じ意味になるでしょうか?(IFの方は条件を満たす場合を1、満たしていない場合を0としたつもりです) ANDの方の関数は、多分合っていると思うのですが…。エクセルに入力しても、正しい結果が得られなかったので、質問させていただきました。初心者です。つまらない質問で申し訳ないのですが、よろしくお願いします。 

  • エクセルIF関数について

    エクセルIF関数について エクセルのIF関数を利用して、重複するデータを抽出したいと思っています。 エクセルのIF関数を利用したことがないため、別の対応策があれば そちらも教えていただけませんでしょうか・・ 宜しくお願いいたします。 下記のようにA列に入っている1,2,3,4,5があり重複しているものをD列に一つにまとめ重複している1、5の合計分と重複していないものをEに表示させたいと思っています。     A  B     D   E 1  1  123    1  249 2  1  3      2  3 3  1  123    3  345 4  2  3      4  234 5  3  345    5  1665   6  4  234     7  5  555 8  5  555 9  5  555 D1、E1にはどのような関数で対応するのが適しているのでしょうか?

専門家に質問してみよう