• ベストアンサー

エクセルで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/17068)
回答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

  • Excel VBAにてSUMIF関数の入力

    Excelのあるシートに以下の表があります。     E列 ・・・・・・ F列 ・・・ G列 17行 2008/1/5 ・・ 売上 ・ 1,500 18行 2008/2/10 ・・売上 ・ 2,100 19行 2008/3/11 ・・売上 ・ 1,700 20行 2008/3/18 ・・売上 ・ 1,000 21行 2008/4/1 ・・・売上 ・ 2,500 23行 2008/3/15 ・・・・・・・ 3,500 この場合G23セルには=SUMIF(E17:E21, ">" & E23,G17:G21) という式が入っており、結果的に3,500という数字が見えます。 しかし、このG23セルにマクロにて式を書込み同じ3,500という 値を出したいのですが、マクロ上では何と記述すれば同じに なるのか教えて下さい。 例えばrange("G23").Fomula= "=SUMIF(E17:E21, ">" &E23,G17:G21) と記述してもエラーになってしまいます。

  • SUMIF関数【複数のシートの検索範囲にするには】

    初めて質問します。 エクセルのSUMIF関数で、範囲と合計範囲を、複数のシートにまたがってを選択したいのですが、上手くいきません。 それぞれのシートの作り(行・列の数、表示形式など)は同じです。また選択する範囲も同じです。 目的は特定のクライアントの期間別の合計売上を算出することです。 シートごとに月単位の売上が記録してあり、検索条件にクライアント名を入力すれば、さかのぼった一定期間の売上が算出できるようにしたいのです。 SUMIF関数入力に従っていくと、【範囲】shiftを押しながらシートを選び、シート状の範囲を選択、【検索条件】、【合計範囲】shiftを押しながらシートを選び、シート状の範囲を選択、となります。 具体的な数式としては、 =SUMIF('3月売上:1月売上'!B2:B100,'0805'!$H$20,'3月売上:1月売上'!E2:E100) となりますが、エラーになってしまいます。いろいろ試したのですが、上手くいきません。どなたかお力添えをお願いしまう。 ※今回は連続する数ヶ月の範囲でしたので、シートを:でつないだもので問題ないのですが、もし任意の複数シートを選ぶ場合についても、教えていただければ幸いです。ctrlではダメでした。

  • Excel 条件に一致する日付の求め方について

    こんにちは!初めて質問します。 Excel関数の使い方がわからずに困っています。 売上と在庫管理をそれぞれ別シートに入力しています。 売上が出た場合、在庫管理シートに売上日が表示されるようにしたいのです。 シートは、このような形で、それぞれデータを入力しています。 売上表シート A列  B列    C列      D列 日付  顧客名  商品コード  売上金額 在庫管理シート A列   B列     C列    D列    E列 入荷日 商品コード  商品名  売上日  売上金額 商品コードが一致する売上表シートの日付を、在庫管理シートの売上日に表示させたいのですが、 上手くいきません。 売上金額はSUMIF関数で処理することができました。 Excelに関する知識も乏しく、非常に困っています。 なにぶん初めての質問のために質問内容も的を得ず、わかりづらいかもしれませんが、 どなたかお分かりになる方、是非ご教示くださいませ。

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

    エクセル関数を良く使います。 今回行いたいのはJ28:J32の範囲の中でJ24より小さい値の行のI28:I32の合計の値というものです。 しかし、下記の様に入力すると「入力が正しくありません」と出てしまいます。 =SUMIF(J28:J32,<J4,I28:I32) 数式の場合は””で囲むとヘルプに出ているのですがそれだと<J24という文字として認識してしまうらしく、私の望むJ4より小さい値の行のI列の合計は出てきません。 この式の検索条件にセル番地とすうしくの組み合わせを入れてはいけないのでしょうか? 御存知の方教えて下さい。

  • SUMIF関数の質問

    宜しくお願いします ExcelのSUMIF関数について教えてください。 質問:入力日付を基に区間検索、複数項目で合計を求める。  =SUMIF(UFJ!B4:B604,">="&売上入金!C13,UFJ!M4:M604)-SUMIF(UFJ!$B$4:$B$604,">"&売上入金!$D$13,UFJ!M4:M604)  上記の数式の説明:  UFJシート:B列 日付データ、F列 仕入項目、M列 金額  売上入金シート:A列A18仕入項目(追加したい部分)、  C列C13検索開始D列D13 検索終了、  現在の数式では区間内の金額は抽出できていますが、この条件内で F列仕入を指定して金額を求めたいです。  まだまだ未熟な為に、VBAは分りませんので関数で数式をご指導ください。    PC内容  OS  WinXP Office 2003 です   宜しくお願いします

  • SUMIF関数の集計が上手くいきません。

    「集計」シートのA列に得意先コード・O列に集計欄 「貼付」シートのE列に得意先コード・J列に集計欄があります。 なお、「貼付」シートのE列は重複する場合もあります。 「集計」シートのA列の値を、「貼付」シートのE列から探して、その行のJ列の数値の合計を 「集計」シートのO列に集計したいと思っています。 「集計」シートのA406が「B」で「貼付」シートのE200とE300が「B」で、「貼付」シートのJ200が「150」 ・J300が「250」であれば「集計」シートのO406に「500」(150+250)を表示させたいと思っています。 なお、「貼付」シートのE列には他に「B」の値がないものとします。 そこで、O列に次の関数を入れました。 「=SUMIF(貼付!E:E,A403,貼付!J:J)」 すると、(O4:O405)の範囲では、きちんと「貼付」シートの、各得意先コード別の合計が表示されるの ですが、O406の値が「0」と表示されます。 数式は合っていると思うのですが、何が誤っているのか、わかるかたはいらっしゃいますか? 406行目がA列に得意先コードが入っている最終行であることも関係ありますか? あるいは、どのように集計したら良いのか、教えていただけると助かります。

  • SUMIFの検索値データの処理の仕方

    添付のような表がsheet1にあります。 実際はもっと行数が多く、型番も200型以上あります。 別の日に同じ型番を売っていることもあるので、sheet1のB列はかなりのデータが重複しています。 sheet2に、品番ごとの個数を表示させているのですが、sheet1での個数の合計とsheet2の個数の合計がいくつか合いません。 検索値はsheet1のB列を別sheetにコピペしたのをフィルタ→詳細設定→範囲を指定する→重複した値の削除で整理して並び替えたのをsheet2のA列にコピペしています。 B列に=SUMIF(Sheet2!$A$2:$A$1000,$A5,Sheet2!$B$2:$B$1000) と入力しています 先月のデータはこれで処理できたのですが、今月は何故だかできません。 個数の総数が1足りないのです。 検索値のデータが足りないのかもしれません。 sheet3には、売上日ごとの売上合計の集計、累計もSUMIFで表示していて、そちらの個数は合っています。 何かいい方法はないでしょうか? sheet2のA列にコピペした値で、sheet1のB列の値から欠けているものを調べるにはどうしたらいいでしょうか? 宜しくお願いします。

  • エクセルの関数、式教えてください。

    難しくてどうしてもわかりません。 無知で見よう見まねでやっております。 売上管理シートのE列 商品番号を入力すると その商品番号の 入出庫表シートJ列にある価格を 売上管理シートのT列に自動で入力するには どうしたらよいでしょうか??? 売上管理シートのT列に色々やってみたのですが、 できません。どうしてもわかりません((+_+)) 分かる方、教えてください!よろしくお願いいたします。 ≪売上管理シート≫  (E列)       ・・・・省略      (T列) 商品番号   品名   販売価格  仕入価格 1111111    スイカ   500円    200円 22222     メロン    1000円    600円 ≪入出庫表シート≫  (D列)     ・・・・省略     (J列) 商品コード   品名      仕入価格      1111111     スイカ      500円       5555555      メロン       300円   

  • SUMIF関数?

    例の通りなんですが、Book1B列にはBook2B列、Book1C列にはBook2C列のBook2A列の日付が入ります。 <例> Book1 A B C Z 0001 - 7/27 0002 7/27 7/27 0003 - - 0004 - - 0005 7/27 7/27 0006 - - 0007 7/27 7/27 0012 - - 0013 - 7/27 0014 7/27 - 0015 - - 0016 - - Book2 A B C 7/27 0005 0013 7/27 0007 0002 7/27 0014 0005 7/27 0002 0001 0007 Book1にはA列が500~1000行近くあり、Book2はA列の日付ごとのシートが一ヶ月分あります 。 Zの列で =SUMIF(Book2!$B$1:$B$4,A1,Book2!$A$1:$A$4) Book2B列・C列…ごとに作業しています。 SUMIF関数は条件をみたす値の合計を求めるとなっていますがこの場合の使用はどうでしょうか? 他の方法があれば教えていただけますか? 何度も修正したのですが、列がずれてしまいます。見づらくてすみません。

  • エクセル関数を向教えてください!!!

    (1)売上表があります。 ちがうシートに(2)在庫表があります。 (2)在庫シート D列商品コード L列入出庫数 の表があります。 (1)売上シートのE列に商品番号を入力すると入力に応じて (2)在庫シート のL列入出庫数を減らすようにしたいです。 どのようにしたらできるのでしょうか?? 関数は無知で見よう見まねでやっています。 詳しい方、教えてください。よろしくお願いいたします。

専門家に質問してみよう