• ベストアンサー

エクセル集計でビットの立っているものだけを集計したい!

エクセルで物品費の集計表がこういった形であります。 (日付)(物品名)(受払有無)(物品費)   2/1  A    1     ¥500  2/10 A          ¥1000  2/27 A    1     ¥2000     と連日データ打ち込みをした表Aがあり、下段に集計欄(表B)があります。それで 1.「受払有無」に「1」が立っている 2.表Aと表Bの「物品名」が一致しているもの の集計を取り出したいのですが、sumifですると「受払有無」の「1」も「ブランク」も含まれた物品費の合計が出てきてしまうのです。 (物品名)(合計)   A   \2500 といった具合に出したいのですが・・・かなり説明不足かもしれませんが、知恵を貸してください。よろしくお願いいたします。  

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

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.4

物品名の範囲に、AやBやCといろいろな品名が混じっていて、その中から物品名がAで受払有無が1のものを集計したいなら、 =SUM((物品名の範囲="A")*(受払有無の範囲)*(物品費の範囲)) (例) =SUM((B2:B100="A")*(C2:C100)*(D2:D100)) でどうでしょう。ただし、これは配列数式なので、式の入力後にShift+Ctrl+Enterを押す必要があります。

wagako
質問者

お礼

短時間でたくさんの回答ありがとうございます。この方法でしたらキレイにできました!ただ「配列数式」の意味が全然わかりません。用語集で勉強します。助かりました!ありがとうございました<(_ _)>

その他の回答 (4)

回答No.5

SUMIF関数をそのまま利用する(作業列が必要ですが…) せっかく受払の有無欄に"1"が立っているのですから、作業列=受払有無×物品費としてから、SUMIFで作業列を合計する、という方法はいかがでしょうか。

wagako
質問者

お礼

短時間でたくさんの回答ありがとうございます。作業列を入れることも考えたのですが、提出せねばならないため、断念しました。今まで「集計=足し算」という頭があったため、「受払有無×物品費」という発想が思いつきませんでした。関数の本で「sumproduct」という関数を見つけたのですが、この関数と近い感じかもしれません。今後もエクセル関数ではかなり手こずると思いますので、参考にします。本当にありがとうございました<(_ _)>

  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.3

表の構成がよくわからないのですが、SUMPRODUCTを使うとできるかもしれません。 =SUMPRODUCT(受払有無の範囲, 物品費の範囲) ※SUMPRODUCTは、両方の範囲で対応するセルの値を乗算し、その和を求める関数です。

wagako
質問者

お礼

短時間でたくさんの回答ありがとうございます。関数の本で「sumproduct」を見ましたが、イマイチわけがわかりませんでした。shkwta様の説明でようやくわかりました。それを使ってみたのですが、物品名がAのほかにもBとかCとか混在していてウマくできませんでした。今後何かに使えると思うので、「sum関数」を極めてみようかと思います。ありがとうございました!

  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.2

作業列を利用してもよいなら簡単にできます。 今、A列に日付、B列に物品名、C列に受払有無、D列に物品費 が入力されているとして、 セルE2に「=B2&C2」と入力して、下までドラッグします。 すると、wagako様の例だと、2/1の分(セルE2)と2/27の分(セルE4)に「A1」と入り、 2/10の分(セルE3)には「A」とだけ入るはずです。 表Bについて、A列に物品名、B列に合計が記入されており、 表Aが仮に10行目までで終わっており、表Bが11行目から始まっているとします。 セルA11にある物品名が書かれていたとき、セルB11に 「=SUMIF(E2:E10,A11&1,D2:D10)」 と入力してやれば、表Aの物品名が「A」で、受払有無が「1」の行の物品費だけを 合計します。 最後に列Eを非表示にすればOKです。

wagako
質問者

お礼

短時間でたくさんの回答ありがとうございます。作業列を入れることも考えたのですが、提出せねばならないため、断念しました。文字を結合させたものを別セルに置いてそれを集計するという方法もあるのですね。本当関数は奥深いです。ありがとうございました!!

  • son123
  • ベストアンサー率23% (17/72)
回答No.1

表題の行をドラッグして、「データ」「フィルタ」「オートフィルタ」をすると△がつきます。Aの入力された列(A・B・C・D・E・・・)と1が入力された列の三角をクリックすると、指定したものだけが表示されSAM関数などで集計するとできますよ。

wagako
質問者

お礼

短時間にたくさんの回答ありがとうございます。検算用にオートフィルタを使って集計します。ありがとうございました!

関連するQ&A

  • エクセルで集計をしたいのです

    お世話になります。 Accessからエクスポートした表があります。 (集計元表) [商品名]|[支店名]|[日付]|[売上数]| 商品A|支店1|2011/08/01|6| 商品A|支店1|2011/08/05|2| 商品A|支店2|2011/08/01|3| 商品B|支店1|2011/08/01|9| 商品B|支店2|2011/08/01|1| … これを以下のように、商品毎に表にしたいのです。 (集計表:商品A) 商品A|8/1|8/2|8/3|8/4|8/5|合計| 支店1| 6 | 0 | 0 | 0 | 2 | 8 | 支店2| 3 | 0 | 0 | 0 | 0 | 3 | 合計 | 9 | 0 | 0 | 0 | 2 | 11 | (集計表:商品B) 商品A|8/1|8/2|8/3|8/4|8/5|合計| 支店1| 9 | 0 | 0 | 0 | 0 | 9 | 支店2| 1 | 0 | 0 | 0 | 0 | 1 | 合計 | 10 | 0 | 0 | 0 | 0 | 10 | 合計の行/列は最後にsumしますが、集計元表から 集計表カドの商品名、日付、支店を判別してセルに売上数を収める 手段のヒントを頂ければ幸いです。 セル関数でもVBAでもなんでも構いません。 宜しくお願いします。

  • エクセルでの集計について

    エクセルでの集計について質問です。 【4月】 (営業A)              (営業B) A     B       C      D       E      F 会社名  品名   売上金額  会社名  品名   売上金額 ○○   ××   ¥10,000   □□   △△   ¥50,000 □□   ■■   ¥30,000   ★★   ○○   ¥20,000 ○○   ☆☆☆  ¥50,000   ○○   ???  ¥30,000 上記のように1枚のシートに営業さんごとに分けて月別の売上表を作っています。 最後のシートに個人ごとの年間売上げ表を作りたいのですが、 【年間合計】      (営業A)   (営業B) A      B      C       会社名  売上金額  売上金額 ○○   ¥60,000  ¥30,000 □□   ¥30,000  ¥50,000 ★★   ¥0     ¥20,000 上記のように会社名ごとに年間合計を作る場合にはどのような方法がありますでしょうか?(年間合計に品名は必要ありません) SUMIFを入力してみたら、ものすごく式が長くなってしまいました… 他に方法がありましたら宜しくお願いします。

  • エクセルの集計について

    立て続けにお力をお借りします!>< リスト内において A列:名前 B列:担当社名 C列:担当社種類(A,B,C,D) の場合において たとえばD1に名前を入れると、 D2にその人がAを何件、Bを何件もっているかが出るような表を作りたいです。 数字の合計はDSUMやSUMIFでいいかと思いますが VLOOKUPとCOUNTIFの合算みたいな集計になるので詰まってます: よろしくお願いいたします;

  • エクセルで集計したいのですが・・・

    エクセルで以下のような集計をしたいのですが、教えていただけませんか? 行2以下の各行について、 行1のデータ(数値)と一致する数の合計をそれぞれの行について 集計したいのです。    A  B  C  D  E  一致数 行1 1  2  1  3  5   行2 2  3  2  3  5   2 行3 1  2  1  4  5   3 行4 4  2  1  3  4   3 行5 1  2  1  3  5   5 ・ ・ よろしくお願いします。

  • エクセル 特定条件以外の合計

    DBから出力した表の集計をかけたいのですが、下記要件で集計することは可能でしょうか? ◎テーブル(例) 行  |科目CD(セルA) | 金額(セルB) 2  |00        |10000 3  |30        |2000 4  |50        |3000 ◎条件 科目CDが"00"以外の合計 ◎試した事 =sumIf(A2:A4,"<>00",B2:B4) ネットで調べて、上記をテストしたのですが、”00”も合計されてしまいました。 ちなみに、"00"だけの合計は問題なくできました。 =sumIf(A2:A4,"=00",B2:B4) とりあえず、C列にIf関数でフラグを立ててSumifで合計させてますが、スマートではない為、アドバイスお願いいたします。 ◎現在 C列にif(A2="00",0,1) sumif(A2:4,1,b2:b4) これで合計が出来てます。

  • 空白以外のセルの条件をつけて集計をしたい

    SUMIFでB列にデータが入っていればA列の集計をしたいのですが全件の合計が返ってきます。 =SUMIF(B2:B10,"<>""",A2:A10) 正解を教えてください。

  • エクセルの集計表について

    エクセルで下記のような表があります。 商品コード  商品名   A店(個) B店(個) 12      いちご   3      2 66      バナナ   6      20 12      いちご   55      4 55      メロン   12      9 66      バナナ   100      15 12      いちご   99       38              ↓ 商品コード  商品名   A店(個) B店(個) 12      いちご 合計             157    44 55      メロン 合計             12      9             66       バナナ    合計             106    35 集計表を使って、商品ごとにA店とB店の個数合計を出すのですが、 個数合計が出た行のみを、一括で書式を変えるにはどうしたらよいでしょうか? 商品は、100種類くらいあって、すべてのデーターの数は、3000くらいあります。 合計の列だけを抽出して、ドラックしてコピーしても、その間にあるすべての列が変更されてしまうので。 エクセルは、あまり詳しくないので、詳しいかたどうぞよろしくお願いします。

  • エクセルの集計について

    エクセルの集計について エクセルでセルの結合を使用した場合の集計の仕方を教えてください。 現在、以下の様に入力をしており、A1~A3、A4~A6をセル結合しています。           A          B 1       2010/4/5        5 2                    6 3                    7 4       2010/4/10       5 5                    6 6                    7 7       2010/5/3       5 この場合に2010年4月のB列の集計を行ないたいのですが、本来36となるところが、それぞれ一番上の行の数値のみを集計し10となってしまいます。36にするにはどの様な式を入力すればよいでしょうか。因みに現在使用している式は以下の通りです。 =SUMIF(A1:A7,"<2010/5/1",B1:B7) 以上よろしくお願いいたします。

  • エクセル2003の「串刺し集計」について教えてください。

    年度別の売上等の集計表を作っています。 月毎にシート名を「0604」、「0605」・・・とし、半期毎にも集計を かけたいと思っています。(0604~0609のシート間) それぞれのシートは同じ表で、B列に「曜日(月~日)」が D列には「客数」が入っています。 そこで「特定の曜日の客数」を半期毎の集計シート(0609の後)に 表示させようとして、下記のような関数を入れました。 =sum('0604:0609'!,sumif($c$2:$c$30,"月",d2:d30)) しかし、「入力された数式は正しくない」と表示されてしまい ヘルプを参照しましたが、一般的な入力時の注意だけでした。 SUMにはSUMIFを組み合わせられないのでしょうか? 参照するセルの値が変わっても、集計結果に反映される関数を 教えていただけませんでしょうか。

  • エクセル 集計方法を教えてください

    エクセル2003について教えてください。 宜しくお願いします。  A B C 1 2 あ   2 0   あ 3 2 い い 4 1   あ 5 2 あ あ 上記のような表で、「B列にあ」と「C列にあ」と「B列C列共にあ」の場合のA列の合計値5を導きだすには どのようにしたら良いのでしょうか? 上記のようなあの合計・いの合計と20種類の合計値を 200行ぐらいから集計したいのですが宜しくお願いいたします。

専門家に質問してみよう