ちょっと先の未来クイズ第4問

エクセルでA列に得意先、B列に金額、C列に○or×を入力しています。
得意先は部署ごとにわかれていますが、それを会社単位にして
C列に○が付いていたらB列の金額を合算できるようにしたいです。

わかりにくいかと思いますが、教えて頂きたいです。
よろしくお願いします。

質問者からの補足コメント

  • ご回答ありがとうございます。
    ちなみに、A列の得意先をプルダウンで選択できるようにしたいのですが、難しいでしょうか…
    なにか方法がありましたら、教えて下さい。
    重ねてよろしくお願いします。

      補足日時:2017/04/17 16:26

A 回答 (7件)

「得意先名」と「〇/×」で合計の判断をするので、


SUMIF関数ではなく
SUMIFS関数ですね。

Excel2007から追加された関数ですので、Excel2003以前のバージョンではSUMPRODUCT関数を使うことになります。

SUMIFS関数は
 =SUMIFS(合計対象範囲 , 検索条件範囲1,検索条件1 , 検索条件範囲2,検索条件2...)
のように複数の検索条件を設定することができ、このすべての条件を満たした場合の合計を求められます。
 =SUMIFS(B:B , A:A,”得意先A” , C:C,”〇”)
こんな感じ。

SUMPRODUCT関数は、
 商品名 単価 個数
  A   100 20
  B   120 10
  C   150 55
の合計を求める関数ですが、
これの「個数」にあたる部分を「1」か「0」にすることで「単価」の合計(が意味あるのかどうかは別として)を求めることができます。
質問の例では
 得意先 金額 マーク
 ACB社 100  〇
 DEF社 120  ×
 GHI社 150  〇
こんなでしょう。
 =SUMPRODUCT( 配列1 , 配列2 , 配列3...)
として配列にはこの場合は縦方向を指定することになります。
前の例では
 =SUMPRODUCT( B:B , C:C )
この結果
 B2×C2 + B3×C3 + B4×C3
の計算が行われます。
 配列1 × 配列2...
その合計が求められると思えばいいです。
で、後者は
 =SUMPRODUCT( (A:A="ABC社")*1 , B:B , (C:C=”〇”)*1 )
または
 =SUMPRODUCT( A:A="ABC社") * B:B * (C:C=”〇”) )
こうなります。
 A:A=”ABC社”
で、A列の値が”ABC社”なら”TRUE”が、違えば”FALSE”が返るので、
これを四則演算させて”TRUE"を「1」、”FALSE"を「0」にして集計させます。
    • good
    • 0
この回答へのお礼

みなさんありがとうございました。
詳しく教えてくださった銀鱗さんをベストアンサーに
させていただきます。

お礼日時:2017/04/18 17:05

補足コメントへの返答です。



プルダウンで選択するには、入力規則で
 ・リストを作る
 ・表の上にあるリストを範囲指定する
の2通りの方法があります。

得意先名が増える可能性があるならば、別のシートに得意先名の一覧を作成しておいてその範囲を指定するとメンテナンスが楽です。
(Sheet2のA列に作成したならば… Sheet2!A:A …のように指定)

同様にC列の「〇」「×」も入力規則で、プルダウンして選択するようにしても良いと思います。
この場合は、No.6で回答されているように入力規則の中でリストを作ってしまうほうが良いでしょう。
    • good
    • 1

エクセルの「データ」タブにある「データの入力規則」をクリックします。


データの入力規則ダイアログの中の「設定」タブにある「入力の種類」を「リスト」に設定します。
「元の値」の中に「得意先1,得意先2,得意先3」←というようにカンマで区切って入力するとリストとして選べるようになります。
    • good
    • 1

=SUMIF(C:C,"○",B:B)



C列が"○"となっているB列を集計する式です。
    • good
    • 0

SUM関数とIF関数が組み合わさった「SUMIF関数」(サムイフ)が良いと思います。


複数の条件を設定するなら、ちょっと複雑ですが「DSUM関数」(ディーサム)の方が良いかも。
作業法は、他人に教授できるほどではありませんので、ネット等でお調べ下さい。
    • good
    • 0

こんにちは



>得意先は部署ごとにわかれていますが、それを会社単位にして~
会社単位にする方法が記載されていないので、具体例は示せませんが、まず、作業列を設けて、関数等で会社名を表示するようにしておきましょう。
(作業列なしで、直接求められるかもしれませんが、説明上わかりにくくなるので分けて説明します。)

集計したいのは、作業列が同じ会社名で、C列に○がある行を対象としたB列の値の合計値だと思います。
上記の準備ができていれば、SUMIFS()やSUMPRODUCT()等を用いて、そのまま算出することが可能です。
http://www.becoolusers.com/excel/sumifs.html
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu …
    • good
    • 1

SUMIFS、SUMPRODUCT、などが使えると思います。

    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報