• ベストアンサー

エクセルでSUMIF関数にもう一条件

以下のような条件で値を取得したいのですが、ご教示お願いいたします。 <例> 酒屋さんのチェーン店があり、1商品が売れるごとに1行追加されます。 店の登録番号(A列)、売れた商品名(B列)、値段(C列)、分類 ※酒or酒以外の2種類(D列)があります。 これが「会計シート」にあり、別シートへ値を取り出したいのです。 取り出し方は、店ごとの売り上げ高を出し、更に分類毎に分けたいです。 ここで、店ごとの売り上げ高を出すために、まずSUMIF(会計!範囲,店の登録番号,会計!範囲) というのをつくり、店ごとの値を出しました。 ここで、更に分類毎に分けようとしたのですが、どのような式に すればいいかがわかりませんでした。是非ご教示お願いいたします。 こんな感じで出したいです↓ 店番 分類 金額 001 01 1200 001 02 3400 002 01 9000 002 02 5000

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

エクセル2007の場合、 =SUMIFS(会計!金額範囲,会計!店番号範囲,店番号,会計!分類範囲,分類番号) エクセル2003以下の場合 =SUMPRODUCT((会計!店番号範囲=店番号)*(会計!分類範囲=分類)*(会計!金額範囲))  因みにSUMPRODUCT関数では、列指定(例えば、A:A)は指定できませんので、通常のセル範囲指定をして下さい。

areddin711
質問者

お礼

ありがとうございました! 後者の方法でできました。ありがとうございます。

その他の回答 (4)

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

エクセルのバージョンが書いてない。 常識的に書くべきことと言うほかに、下記重要な理由が出来た。 2007ならSUMIFSという便利な関数が出来た。 雑誌や2007の関数解説書では有名な話ですよ。そんなもの読んでないのかな。 内容はGoogleででも照会のこと。 ーー エクセル2003以前では、2条件以上の条件付き加算はSUMPRODUCT関数が定石です。この質問コーナーでは毎日のようにこのタイプの質問が出る。Googleででも「OKWAVE sumproduct」で照会したら何万の記事が出る。 それらを1,2読んだら。 エクセルについて、この質問コーナーも必要の都度質問するだけの人が多く、日ごろから質問を読んで勉強していないない人が多いことが感じられる。 ーー もうひとつは 店番と分類の、もれ無き、重複なき、一覧をシートに作れますか。この方が先決で必要です。 ヒントとして、やり方はフィルタオプションの設定などです。 == 出来ればコンナな課題を関数で解決しようとせず、ピボットテーブルなどで考えたほうが早いのです。 これも知らないのかも知れないが。

areddin711
質問者

補足

当方EXCEL2007を使用したことがなく、EXCEL2003に無い関数がある ということも知りませんでした。 >Googleででも「OKWAVE sumproduct」で照会したら何万の記事が出る。 そもそもsumproduct関数を知らなければこんな検索はできませんよね? 教えてgooに対して求めていることなど、人それぞれ。 スポット的に質問をし、教えてくださる人がいるのならば最強の 効率化ツールではないかと。 少なくとも、貴方のような回答が一番求められていない。空気を読んでね。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

別シートのA1セルには店番、B1セルには分類、C1セルには金額と入力します。 A2セルから下方には001,001,002,002・・・のように入力し、B2セルから下方には01,02を繰り返し入力します。 そこで、C2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A2="","",SUMPRODUCT((会計シート!A$1:A$100=A2)*(会計シート!D$1:D$100=B2),会計シート!C$1:C$100))

回答No.3

どうしてもSUMIFを使いたいのなら、E列に「店番・分類」を用意し「=<店の登録番号>&<分類>」としておけば、 =SUMIF(会計!範囲,店番&分類,会計!店番・分類) で集計できます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

作業列案ですが、F列に =A2&D2 で下へコピィしておいて 合計金額は SUMIF(会計!作業列の範囲,店の登録番号&分類,会計!範囲) 或いは、最初からA列に 001-01 とか入力して 店番と分類はRight関数やLeft関数で表示します。 一番、簡単で日々の作業で重くならない方法はピボットテーブルだと思います。 結果は   01 02 合計 001 002 003 といった表になりますが。

関連するQ&A

専門家に質問してみよう