複数条件の設定について(EXCEL)

このQ&Aのポイント
  • EXCELで、複数条件の設定について学びたいです。
  • シート2に得意先&商品ごとに納品日が入力されたら件数がカウントされる方法を知りたいです。
  • マクロを使わずに、SUMPRODUCT関数やIF関数を使用して解決する方法があれば教えてください。
回答を見る
  • ベストアンサー

複数条件の設定について(EXCEL)

EXCELで、次のような表を作成しています。 シート1               シート2 得意先名  商品名  納品日       A社 B社 C社  A社     X           X  B社     Z           Y  A社     X           Z  C社     Y シート2には、得意先&商品ごとに納品日が入力されたら件数がカウントされるように したいんです。今までの質問をヒントに、SUMPRODUCT関数やIF関数で SUMPRODUCT((得意先名="A社")*(商品名="X")*(納品日<>"")) IF(納品日<>"",SUMPRODUCT((得意先名="A社")*(商品名="X")),"") と作成してみたんですが、うまく行きません。 マクロはわからないんで、できればマクロを使わずに作成したいんですが、何か方法は ありますか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

>最初の質問に書いたんですが、その式ではエラー表示(#N/A)になってしまい、実際にデータを入れても反応しません。 実際、試してみましたが、問題なく機能しました。 ただし、式中の3つの()内のセル範囲の行数が異なっていると#N/Aが出る可能性があります。 (Excel97,Excel2000です)

ma--yo
質問者

お礼

ご指摘のとおり、名前の定義で行数が1行異なっていました。 何度も回答いただきありがとうございました。

その他の回答 (3)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>説明不足でしたが、納品日を入れると納品済みのデータだけ自動で件数をカウントして >くれるようにしたいんですが。 B2の式を =SUMPRODUCT((Sheet1!$A$2:$A$5=B$1)*(Sheet1!$B$2:$B$5=$A2)*(Sheet1!$C$2:$C$5<>"")) としてみて下さい。

ma--yo
質問者

補足

最初の質問に書いたんですが、その式ではエラー表示(#N/A)になってしまい、実際に データを入れても反応しません。

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

ピボットテーブルを使う例 例として下記データを用意する。A1:c9の範囲に入れる。 (A列)(B列) (C列) 商品 会社 件数 a x 1 b y 1 c x 1 a z 1 c x 1 b z 1 a z 1 a x 1 <操作> (1)A1:C9を範囲指定する。 (2)メニューの「データ」をクリック(3)「ピボットテーブルと・・・」をクリック(4)「次へ」をクリック(5)(使用するデータの範囲)A1:C9を確認し「次へ」をクリック(6)「レイアウト」をクリック(7) 「行」の四角へ「会社」を、「列」の四角へ「商品」を、「データ」の 四角へ「計数」をドラッグアンドドロップする(7)OKをクリック(8) 「完了」をクリック <結果> 新しいシートが増やされ、そこに 合計 : 件数 商品 会社 a b c 総計 x 2 2 4 y 1 1 z 2 1 3 総計 4 2 2 8 の表が出きる。 (注)上例では、件数列をC列に作ったが、C列を作らずに、(5)の「データ」のところで、「商品」を四角のところに一旦ドラッグアンドドロップ して、そこでダブルクリックして、そこのリストの中の商品の「個数」を設定 すると結果は同じになる。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

<Sheet1>    A    B    C 1得意先名  商品名  納品日 2 A社    X  2002/1/1 3 B社    Z  2002/1/2 4 A社    X  2002/1/3 5 C社    Y  2002/1/4 <Sheet2>    A   B   C   D 1     A社  B社  C社 2  X 3  Y 4  Z となっていれば、B2に  =SUMPRODUCT((Sheet1!$A$2:$A$5=B$1)*(Sheet1!$B$2:$B$5=$A2)) として、B2:D4にコピーします。

ma--yo
質問者

補足

早速の回答ありがとうございます。 書いていただいた関数だと納品日が空白の場合も含まれますよね? 説明不足でしたが、納品日を入れると納品済みのデータだけ自動で件数をカウントして くれるようにしたいんですが。

関連するQ&A

  • エクセル関数 複数条件?

    ・ ファイルあ シートに商品別日計数が記載されています        商品A  商品B  商品C 6/14土曜日  A1セル  B1セル  C1セル            ↑      ↑     ↑ いファイル土曜日シートX5  Y6   Z7 とリンクしている ________________________________________ 6/15日曜日  A2セル  B2セル  C2セル            ↑      ↑     ↑ いファイル日曜日シートX5  Y6   Z7 とリンクしている ________________________________________ 6/16月曜日  A3セル  B3セル  C3セル            ↑      ↑     ↑ いファイル月曜日シートX5  Y6   Z7 とリンクしている ________________________________________ 他平日   A4セル  B4セル  C4セル           ↑      ↑     ↑ いファイル月曜日シートX5 Y6   Z7 とリンクしている ________________________________________ ・ い ファイルシートは日誌になっていて月数分の数のシートがあり、    日にち曜日ごとに、    ファイルあ シートの日計数を入力すると    リンクして表示するようになっています  いファイルも各シート各日ごとリンクしています いファイル 土曜日のシート ↓ 商品A X5←ファイルあシートA1セルとリンク⇒表示しないようにしたい 商品B Y6←ファイルあシートB1セルとリンク⇒表示しないようにしたい 商品C Z7←ファイルあシートC1セルとリンク⇒表示しないようにしたい いファイル 日曜日のシート ↓ 商品A X5←ファイルあシートA2セルとリンク⇒入力無で表示されない 商品B Y6←ファイルあシートB2セルとリンク⇒入力無で表示されない 商品C Z7←ファイルあシートC2セルとリンク⇒入力無で表示されない いファイル 月曜日のシート ↓ 商品A X5←ファイルあシートA3セルとリンク⇒ファイルあシートA1セル+A3セル 土曜日とプラスして数値を表示したい 商品B Y6←ファイルあシートB3セルとリンク⇒ファイルあシートB1セル+B3セル 土曜日とプラスして数値を表示したい 商品C Z7←ファイルあシートC3セルとリンク⇒ファイルあシートC1セル+C3セル 土曜日とプラスして数値を表示したい ・ い ファイルシートのほうの月曜日に ファイルあ シートの第2土曜日分の日計数を足して表示したいのです  (第2土曜日分の日誌はなくしたい!   *実際はあるのですが、〈 むしろあってよいです〉   次の日にちとリンクしているため、休みとみなし日曜・祝日と同じように第2土曜日は、表示しない方法をとりたい)   他の平日はそのままの数値がリンクされるように したいのですが 勉強不足で四苦八苦です。    この説明でわかるでしょうか?不安ですが、  どうかよろしくお願いします。

  • エクセルで、条件にあう複数の行を別のシートに抽出する

    《どなたか、お教え下さい》   エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。 sheet1 番号 得意先 日付 商品名 商品詳細 金額 備考 1   A 2   B 2   B 4   D 5   E 6   F 2   B 3   C 5   E   A    B  番号  得意先   1   A      2   B   得意先名は、番号を入力することで表示されるように   3   C   関数「VLOOKUP」を使って表示させるようにしていま   4   D   す。    5   E   6   F  

  • Excel関数:文字を含む複数条件の合計 (3)

    先日、「Aという文字が含まれるX社の合計、しかし"例外"という文字が含まれている場合は合計しない」に対し、 =SUMPRODUCT((ISNUMBER(FIND("A",A2:A15)))*(ISERROR(FIND("例外",A2:A15)))*(B1:F1="X社")*(B2:F15)) を教えていただき、解決しました。      A           B    C   D    E    F   ――――――――――――――――――――――――― 01 |商品名        X社  Y社  Z社   X社  Y社 02 |A            1    1    1    1    1 03 |A 例外        1    1    1    1    1 04 |B            (1)   1    1    (1)    1 05 |B 例外        1    1    1    1    1 06 |C            (1)   1    1    (1)    1 07 |C 例外       1    1    1    1    1 08 |A B         1    1    1    1    1 09 |A B 例外     1    1    1    1    1 10 |A C         1    1    1    1    1 11 |A C 例外     1    1    1    1    1 12 |B C         (1)   1    1    (1)    1 13 |B C 例外     1    1    1    1    1 14 |A B C       1    1    1    1    1 15 |A B C 例外   1    1    1    1    1 今回求めたいと思っている合計の条件は  条件1. B または C、または両方が含まれる X社の合計  条件2. "例外"という文字が含まれている場合は合計しない  条件3. B または C と記載があっても A も含まれている場合は合計しない  注意1. X社は複数列あります。  注意2. B2:F15の数値は分かりやすくすべて「1」にしていますが実際には異なります。  注意3. 実際には 「A/B/C/例外」 以外の文字や数字が商品名には含まれています。 答えは上図(1)の箇所、合計6 です。 試行錯誤しながら試みましたが断念。自分の頭を整理するために、見づらいですがイメージ図を作ってみました(ご参考になれば)          ______        /    A     \      /               \     |      ●        |       |___     ___ |    /\ ●  \/  ●  / \   /     \ /● \ /       \ |        | __ |         | |  ●   |      |   ●    | |      |  ●  |         |  \       \   /         /     \B__/ \__C__/ ABCという3つの円・範囲が、それぞれ重なりあっている。 除外する必要のある "例外"は図では●と表記。例外=●は不特定場所にある。 この図の下段3箇所の合計の内、"例外"を除いた値の合計を求めたいということになります。 ・ B枠の重なっていない範囲、内●は除く ・ C枠の重なっていない範囲、内●は除く ・ B枠とC枠のみ重なっている範囲、内●は除く これを、関数で導きだすことは可能でしょうか。。。 ご検討の程、よろしくお願いいたします。

  • 複数条件抽出(アクセス)

    F得意先マスターを作成しました。得意先CD、得意先名、フリガナ、住所、TELの項目名があります。(テーブルから作成しました) 例えば、フリガナがフで始まり、住所が神奈川で始まるものを抽出したいので、 テキストボックスを二つ作成し、コマンドボタンも作成しました。一つ目のテキストボックスにはフリガナを入力、二つ目には住所を入力します。 これを抽出するマクロを作成したいのですが、どうしてよいのか?? (また、一つ目のテキストボックスには何か条件を入れますが、二つ目にはいれないで、抽出したいというものにも対応したいと思っています)

  • エクセル 複数の条件?

    お世話になります。エクセル2007です。 商品の卸値を決めるのに複数の工程別単価シートから参照して計算してだそうとしてます。 卸値=(A工程の単価 + B工程の単価) * 自社マージンかけ率 例えば、A工程のX社、Y社、Z社の納品書のシートを コピーしてまとめてA工程単価シートをつくり、商品単価の入るシートにVLOOKUPで、よびだしています。 今まではA工程だけだったのですが、B工程も計算したいと思ったのですが、うまくつくれません。     A    B    C     D            E  1 卸値  数量  売上 A工程単価    B工程単価 今までの式はA1に =(IF(ISERROR(D1),0,ROUNDDOWN((D1*10/7.5),-1))) で、 常に総売り上げや平均卸値などを もだしたいので エラーを0にして総売上は =SUM(C:C)のように 計算しています。 A工程はあるけれど、B工程はない仕事もあり、 場合には C1のB工程のセルにエラーが出てしまいますが、 複数の条件でどういった式をいれればいいのかわかりません。 D1にデータがありE1がエラーのときはB1のA工程だけの単価で計算したいです。 B工程だけのときはありえないので、エラーでOKです。 もっとシンプルに質問できたかもしれませんが いろいろ書いてしまいました。すみません。 どうぞよろしくお願いします。

  • 条件抽出された1フィールドの複数レコードを複数フィールドの1レコードとして表示するには?

    Accessで商品販売のデータベースを作っています。 商品マスターテーブルには、「商品名」「略称」「単価」「単位」・・・が入っており、 販売記録フォームに日付ごとで売上を入力するようになっています。 (サブフォーム(データシートビュー)に、商品を入力し、価格を表示します) ------------------ [得意先名] ------------------ [日付] ------------------ [商品名][数量][単位][単価][金額]  ・  ・  ・  ・ ----------------- これとは別に、売上一覧表を作成しようと思います。 これは、日付ごとに略称で商品名を表示し、一目で何が売れたか分かりやすくするものです。 ------------------------------ [得意先名] ------------------------------ [日付][略称1][略称2][略称3][略称4][略称5][略称6]・・・ ------------------------------ 1つの得意先で、1日の商品項目が10を超えることはありません。 どうしてもできないので、何かいい方法があれば教えてください。

  • エクセルの計算結果が急に出なくなった

    エクセルで請求書を作成しています。 同じブックのシート1のA列に得意先名、D列からJ列に納品日、K列に請求金額を入れています。A列には名前の定義で「得意先」と指定しています。 シート2のB6欄に得意先名が出るように入力規則をリストにして「=得意先」として、順にB6に得意先名をプルダウンできるようにしています。E17に=VLOOKUP(B6,シート1!A:K,4,0)とし、I17まで納品日が出るように指定しています。J17には=VLOOKUP(B6,シート1!A:K,11,0)とし請求金額が出るようにして、これまで順調に発行できてきました。 ところが、何かをいじったのか突然シート2のB6をプルダウンして変化させても数字が変わらなくなりました。どうすればいいでしょうか?

  • Excelマクロ 別シートでの複数条件の選択

    いろいろ検索してみましたが、以下の条件でデータ分析する時にどのようなマクロ関数を書けばよいのか分からないので、教えて下さい。 例えば「シート1」に生データがあって、「シート2」にその結果を表示させようと思います。 「シート1」のA列に、XとYが交互にあったとします。 その横のB列に、1,2,3があったとします。 その中から「A列のXとB列の1」「A列のXとB列の2」…「A列のYとB列の3」の組み合わせの個数を、「シート2」にそれぞれ表示させたい場合、どのようなマクロ関数を作成すればよいでしょうか?

  • 【Excel2007】重複データの条件付き削除方法

    商品の納品リストがあるのですが、条件付きで重複データを削除する方法についてご相談です。 通常は「データ>並べ替えとフィルタ>詳細設定>フィルタオプションの設定」内の「重複するレコードは無視する」にチェックをつけて一覧を作成しています。 今回はその商品の最終納品日を残さなくてはならない為、同じ商品でも納品日が異なる過去の納品データも抽出されてきてしまいます。 納品日が記載された行は残したままで、商品リストというのは作成可能なのでしょうか? 可能であれば納品日が最新の行だけ抽出したいです。 【イメージ】 <元のデータ> 2012/04/01 商品A 2012/04/03 商品B 2012/04/05 商品A 2012/08/01 商品A 2012/08/02 商品C <抽出後のデータ> 2012/08/01 商品A 2012/04/03 商品B 2012/08/02 商品C ・年月日の昇順・降順にはこだわっていません ・各商品が1行ずつ抽出して欲しい ・最新の納品日が出てきてほしい データ自体を別シートにうつし、納品日を削除したデータでフィルタをかけるというのも考えたのですが、該当商品の最新納品日をひっぱってくるような関数があるのかわからずに困っております。 漠然としたご相談で申し訳ありません、情報不足であればご指摘いただければと思いますので どうぞ宜しくお願い申し上げます。

  • Excel関数:文字を含む複数条件の合計

    関数の達人の方、教えてください! A B C D E F ―――――――――――――――――――――――― 1 | 商品名    A社   B社  C社  A社  C社 2 | AA (1) 1 1 (2) 2 3 | BB 1 1 1 2 2 4 | ab AA (1) 1 1 (2) 2 5 | ab BB 1 1 1 2 2 6 | ab AA cd (1) 1 1 (2) 2 7 | ab BB cd 1 1 1 2 2 ―――――――――――――――――――――――― この表から「A社のAAを含む合計=合計9」を出したいです。つまり○数字になっているところの合計です。 自分なりに以下で試したところ、いづれも「0」となってしまいました。 =SUMPRODUCT((A2:A7="*AA*")*(B1:F1="A社"),(B2:D7)) =SUMPRODUCT(((A2:A7="*AA*")*(B1:F1="A社")),(B2:D7)) 列ごとで AA を含む合計を一旦計算することはできましたが、A社は複数列あるため、できれば一度に A社 の該当する合計を出せればと思っています。 =SUMIF(A2:A7,"*AA*",B2:B7) → 合計3 よろしくお願いいたします。

専門家に質問してみよう