- ベストアンサー
エクセル 関数 複数条件
データーの集計を 関数かマクロでしたいのですが例えばこのようなデーターが ある場合は自動集計出来ますか? 日付は入力して、その期間だけ集計したいです。 A B C D E 2009/2/1 2009/2/28 ←日付は自分で入力 項目 A社 B社 C社 D社 鉛筆 紙 赤鉛筆 : : データーはSHeet1にあり 日付を入力すると自動計算されるようにしたいです。 ちなみに データーのSheetには A B C 2000/2/14 C社 鉛筆 2000/2/12 B社 赤 2000/2/11 C社 鉛筆 この場合 A B C D E 2009/2/1 2009/2/28 ←日付は自分で入力 項目 A社 B社 C社 D社 鉛筆 2←と自動計算させたい!! 紙 すいません!関数かマクロを 教えていただきませんか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>本番用のものを使用すると出来ません!なぜでしょうか? どううまくいかないのか、具体例がないと回答のしようがありませんが…
その他の回答 (4)
- CMLT
- ベストアンサー率40% (143/357)
=SUMPRODUCT((データ!$E$2:$E$100>=$D$2)*(データ!$E$2:$E$100<=$G$2)*(データ!$B$2:$B$100=F$4)*(データ!$F$2:$F$100=$C5)) >上手くいきません!どうしてでしょうか? データシートのE列に日付、B列に集計シートの4行目で参照する項目名、F列に集計シートのC列で参照する項目名、となっていることを確認してください。 添付画像の例ではSheet2のF5セルに =SUMPRODUCT((データ!$E:$E>=$D$2)*(データ!$E:$E<=$G$2)*(データ!$B:$B=F$4)*(データ!$F:$F=$C5)) が入っており、D5~G6までコピーです。
補足
すいません! 教えていただいた通りは 出来るんですが いざ!本番用のものを使用すると出来ません! なぜでしょうか?
- mu2011
- ベストアンサー率38% (1910/4994)
>$A:$Aだとエラー表示になってしまいます。 ⇒配列数式なので列指定はできませんので、ほぼ全体とするならば、仮にA列ならばA2:A65536として下さい。 >ちなみにこれが本番用にした関数ですが上手くいきません!どうしてでしょうか? ⇒結果が「0」となるようでしたら、項目名称や社名の文字列をご確認ください。(スペース混入や半角・全角等)
お礼
ありがとうございました!
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 データシートをSheet1として、Sheet2のA1,B1に抽出範囲日付、A3以下に抽出項目名は手入力として、B3に次の数式を設定、縦横にコピーして下さい。 因みにデータシートのA列日付の年が2000年となっているが2009年の誤りとしています。 =SUMPRODUCT((Sheet1!$A$1:$A$10>=$A$1)*(Sheet1!$A$1:$A$10<=$B$1)*(Sheet1!$B$1:$B$10=B$2)*(Sheet1!$C$1:$C$10=$A3))
お礼
=SUMPRODUCT((データ!$E$2:$E$100>=$D$2)*(データ!$E$2:$E$100<=$G$2)*(データ!$B$2:$B$100=F$4)*(データ!$F$2:$F$100=$C5)) すいません! ちなみにこれが本番用にした関数ですが 上手くいきません!どうしてでしょうか? サンプルでは上手くいきました! 日付はD2とG2です。部署がF4、項目がC5ですが なぜ上手くいかないのでしょうか?
補足
ありがとうございます! $A$1:$A$10だと 10行のデーターしかとれないですよね データーがこの先にあると 困るので 行を固定したいのですが $A:$Aだとエラー表示になってしまいます。 A列全て検索させたいのですが・・教えてください。
- CMLT
- ベストアンサー率40% (143/357)
例えば、 質問のA社、鉛筆がB3セルとして、 B3セルに =SUMPRODUCT((Sheet1!$A:$A>=$A$1)*(Sheet1!$A:$A<=$B$1)*(Sheet1!$B:$B=B$2)*(Sheet1!$C:$C=$A3)) 他全てにコピー。 EXCEL2007なら新関数もあり。 =COUNTIFS(Sheet1!$A:$A,">="&$A$1,Sheet1!$A:$A,"<="&$B$1,Sheet1!$B:$B,"="&B$2,Sheet1!$C:$C,"="&$A3)
お礼
ありがとうございます!ちなみに A列は固定したいのですが $A:$Aだとエラー表示されてしまいますなぜでしょうか?
お礼
ありがとうございました! DATAはマクロで打ち込んでいるので 形式が変わっていたためと 思われます! すいませんでした。