SUMPRODUCTで期間集計の方法とは?

このQ&Aのポイント
  • SUMPRODUCT関数を使用して集計を行う際に、集計期間が異なる場合の式の組み方について悩んでいます。
  • シートAのA列からV列までの各項目を集計するために、SUMPRODUCT関数を使用しています。
  • 集計条件として、シートAのH列はID、R列は状況、T列はポイントとなっています。しかし、集計期間がまちまちなため、式の中にどのように組み込めば良いかわかりません。
回答を見る
  • ベストアンサー

SUMPRODUCTで期間集計・・・

皆さま宜しくお願いします。 SUMPRODUCTで集計をしていて、シートAのA列からV列まで各項目があります。 別シートに、 =SUMPRODUCT(('シートA'!$H$2:$H$5000=$A$2)*('シートA'!$R$2:$R$5000={"1","2","3","4"})*'シートA'!$T$2:$T$5000) ちなみに、 シートAのH列はID、シートAのR列は状況、シートAのT列はポイントとある場合、 日付がシートAのN列にありますが集計期間がまちまち(例10/1~10/10や10/11~10/17など)でどのように式の中に入れたらよいのか悩んでいます。 単純に(10/1<='シートA'!$N$2:$N$5000<=10/10)と入れてみたりしてみましたがダメでした。 どのようにしたらよいでしょうか? 宜しくお願いいたします。

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

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

#1 Cupperです。 ANo.1 のお礼に書かれた質問への回答になります。 >("2007/10/1")の部分を既に日付が入力されているセルを参照させたい場合にはどのようにすればよいでしょうか? 質問本文で日付けを文字列で指定していたので、文字列をシリアル値に直す方法で答えましたが、 日付けが入力されているセルを参照する場合は、DATEVALUE関数を使わずそのまま参照してかまいません。 A1セルに 2007年10月1日、B1セルに 2007年10月10日 とあるのであれば、 (DATEVALUE("2007/10/1")<='シートA'!$N$2:$N$5000)*('シートA'!$N$2:$N$5000<=DATEVALUE("2007/10/10"))  ↓ (A1<='シートA'!$N$2:$N$5000)*('シートA'!$N$2:$N$5000<=B1)  ※日付けは 年 まで表示させたほうが間違いを起こしにくいです。 ただし、日付けがシリアル値でなく文字列で入力されている場合は (DATEVALUE("2007/10/1")<='シートA'!$N$2:$N$5000)*('シートA'!$N$2:$N$5000<=DATEVALUE("2007/10/10"))  ↓ (DATEVALUE(A1)<='シートA'!$N$2:$N$5000)*('シートA'!$N$2:$N$5000<=DATEVALUE(B1)) と日付けを示す文字列をシリアル値に直すようDATEVALUE関数を使用してください。 文字列かシリアル値か分からないときは「セルの書式設定」で"文字列"か"日付"どちらに設定されているかを確認しましょう。 ~ 参考 ~ Excelでは日付けをシリアル値として扱っています。 また、DATEVALUE関数は日付けを示す文字列をシリアル値に変換する関数です。 普段日付けとして表示されている(2007年)10月1日 はシリアル値で 39356 として記録されていますが、 「セルの書式設定」で「日付」に設定され、日付けの書式で表示されています。  ※シリアル値は1900年1月1日を1として経過した日数になります。 また、Excelは年を省略して入力された日付けに対してパソコンの時計から年を補完するように作られています。 2008年2月28日(39506)のつもりで "2/28" と入力しても、入力した年が2007年であれば Excelは 2007年2月28日(39141)として記録してしまいます。 年をまたいで日付けを計算に用いる場合や違う年の日付けの計算、曜日を表示させる必要がある時は 必ず "年" から入力するようにしましょう。  ※DATEVALUE関数も同様に補完されます。年が入力されていない場合は注意しましょう。

1224jmm
質問者

お礼

おはようございます。 懇切丁寧なご返答有難うございます。 式も問題なく出来ました。また何かありましたら宜しくお願いします。 ホントに有難うございました。

その他の回答 (1)

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

(10/1<='シートA'!$N$2:$N$5000<=10/10) これは数式が成り立ちません。 (DATEVALUE("2007/10/1")<='シートA'!$N$2:$N$5000)*('シートA'!$N$2:$N$5000<=DATEVALUE("2007/10/10")) としましょう。 日付け文字を日付けとして扱うために Datevalue関数で変換するのを忘れないでください。 10/1 や 10/10 では単なる分数です。 またこの場合、以上~以下の条件を付けるのであれば、(以上)*(以下)とする必要があります。

1224jmm
質問者

お礼

ご返答有難うございます。 出来ました。 DATEVALUEという関数自体知りませんでした。有難うございます。 ちなみに("2007/10/1")の部分を既に日付が入力されているセルを参照させたい場合にはどのようにすればよいでしょうか?

関連するQ&A

  • SUMPRODUCT関数で複数条件適用されない

    Sheet1 A列:日付 B列:注文番号 C列:品名 D列:整理番号 E列:数量 集計 A列:品名 B~AF列:日付(1~31日) 【集計】B~AF列の日付、A列の品名が 【Sheet1】A列の日付、C列の品名と一致したら 【Sheet1】E列の数量を【集計】の該当するセルに抽出する 式をSUMPRODUCT関数で作成しました。 例)10/1 りんご 20 【集計】B3セルに以下の数式を入れましたが なぜか数量が「0」のままになります。 =SUMPRODUCT('Sheet1'!$A$3:$A$200='集計'!B$2)*('Sheet1'!$C$3:$C$200="りん ご")*('Sheet1'!$E$3:$E$200) 特に数式のミスはないと思うのですが どうしても正しい値が入りません。 数式に間違いがあればご指摘いただけませんでしょうか。 また、他に良き方法があればご教示いただけるとありがたいです。

  • SUMPRODUCT関数について

    アンケートの集計をするにあたって、 SUMPRODUCT関数を使いました。 シートが2つあります。 【データ】シート・・・アンケートのデータ A:No. B:データ 1   0 2   1 3   2 4   3 5  空欄が入っている ・ ・ 【集計】シート・・・B列の空欄、1~3の個数を集計する B列に数式 =SUMPRODUCT((データ!$A$4:$A$40000<>"")*(データ!B$4:B$40000=$A4)) を入れました。 A  B 0  2 ・・・・※ 1  1 2  1 3  1 空欄 2・・・・※ 0(ゼロ)と空欄を区別しないで同じと計算してしまいます。 データに、ゼロと空欄が混在している場合、SUMPRODUCTは使えないのでしょうか? この場合、どの数式を使うのがベストでしょうか? 分かりにくくて申し訳ありませんが、 宜しくお願い致します。

  • SUMPRODUCTについて

    おはようございます。 A列に日付(H17.6.5)あるいは空白 B列に1あるいは2 C列に1~1000 A列に日付が入り、かつB列に1が入力されている 箇所のC列の数字の合計を出したいために、 SUMPRODUCTを使おうと思うのですが、 A列の日付の入った場合の数式の立て方が分かりません。 どうかよろしくお願いします。

  • エクセル SUMPRODUCT と OFFSET

    いつもお世話になります。 SUMPRODUCT関数で集計したいのですが、OFFSET関数を組合せてA1に関数を入力し、右にひっぱるだけで36ヶ月分を集計したいと思い、下記の計算式を入力したのですが#VALUE!になり困ってます。 A1=SUMPRODUCT((OFFSET(data!$A$1,1,COLUMN(A1)*3-3,99,1)=$G$1)*(OFFSET(data!$B$1,1,COLUMN(A1)*3-3,99,1)=$H$1),(OFFSET(data!$C$1,1,COLUMN(A1)*3-3,99,1))) dataシートには、A列:商品CD、 B列:営業所CD、 C列:売上金額 の3列のデータが、36か月分108列あります。 集計するシートのG1に商品CDを、H1に営業所CDを入力すると、A1~A36に集計結果を返したいのですが、教えてくださいませんか

  • 期間内集計について II

    先ほどご質問させていただきました。 更に追加項目がありましたが、回答を締め切ってしまいまして再度質問させてください。 ※A列にタイプ、B列に日付があります。 A列のタイプは(仮)(S)・(M)です。 B列の日付は月日がまちまちです。 集計したい数値は、当月のA列のカウント翌月のA列のカウントがしたいと思います。 例 A列 B列 S 07/08/25 M 07/07/30 S 07/07/31 M 07/08/01 S 07/09/02 S 07/08/05 S 07/08/10 M 07/09/02 M 07/08/05 S 07/09/15 この状態で8月(当月)の(S)と8月の(M)と9月(翌月)の(S)と9月の(M)の それぞれのカウントをしたいんです。 みなさま宜しくお願いいたします。m(_ _)m =====に対して===== >8月(当月)の(S) =SUMPRODUCT((A1:A20="S")*((TEXT(B1:B20,"yym")=TEXT(TODAY(),"yym")))) >9月(翌月)の(S) =SUMPRODUCT((A1:A20="S")*((TEXT(B1:B20,"yym")=TEXT(edate(TODAY(),1),"yym")))) ★edate関数は「アドイン関数」です。メニューバーの[ツール]-[アドイン]を選択して、「分析ツール」にチェックしてから使用してください のご回答をいただきました。 ----------------------- 上記式に更にC列にポイントがあります。 このポイントもまちまちで、式の教えていただいた式の中に突っ込んでみましたがうまく動作しませんでした。 お時間のあるときでかまいませんので宜しくお願いします。

  • SUMPRODUCTについて

    A~Dのデータがすべて一致したらE列を合計する関数をつくりました。 C列にはVLOOKUP関数が入っており、合計のE列にもただの足し算が入っております(#N/Aと出てるデータもあります)。 別シートに =SUMPRODUCT((マスター!A2:A100="10A")*(マスター!B2:B100="H")*(マスター!C2:C100="A5")*(マスター!D2:D100=8)*マスター!E2:E100) と入れたら#N/Aと出ます。 条件範囲のエラー値をどうにかしなければだめなのでしょうか? それとも根本的に数式が間違ってるのでしょうか? よろしくお願いいたします。

  • エクセル 集計のエラー

    1枚目のシートに日付、内容などの一覧があります。 2枚目のシートでそれを集計しています。 1枚目のシートの日付を消すと、2枚目で#N/Aのエラーが出ます。 シートの内容を全部消しても出ます。 一覧はどんどん足しているので、一覧の一番下の列は日付が空欄ですが エラーは出ません。 どこが違うのでしょうか? やりたいことは、このシートを空にして新たな一覧を作成して集計したいのです。 説明が下手で申し訳ありませんが教えてください。

  • エクセルの集計について教えてください

    エクセルの集計について教えてください 添付のように、A列からは入力用 A列 日付(複数月にまたがる) B列 金額 C列 項目 E列からは集計用として E列 項目 F列からは月ごとに集計できるような表を作りました 集計用は、また別途ほかのシートで参照して使用する予定です A列には、今後も次々データを足していく予定です 月単位でデータを抽出したのち、項目ごとに合計を算出したいのですが、どの関数を組み合わせればいいのかわかりません。 エクセルはほぼ初心者です ピボットテーブルを使用してもよいのですが、ほかのシートで参照できる方法を教えてください よろしくお願いします

  • EXCELのアンケート集計

    次のアンケートを集計したいのですが、 『SUMPRODUCT関数』を使用した良い方法があれば教えて下さい。 (もし『SUMPRODUCT』以外で更に簡単な方法があればそちらも) ■Execlに入力済みのデータ ・質問は2項目(A列、B列)です。 ・2項目とも回答は「Yes」or「ややNo」or「No」です。 ・集計数は仮に10件(1~10行)とさせてもらいます。 ■見たいデータ(集計方法) ・A列、B列のどちらかひとつ以上が「Yes」の件数 (Aのみ「Yes」 or Bのみ「Yes」 or A&Bともに「Yes」の何れかが該当) よろしくお願いします。

  • EXCEL 期間を指定しての人数の集計

    EXCEL初心者です。下記よろしくお願いします。 EXCEL2007です。 シート1に A列 (入所日)  B列(退所日)   C列(人数) 2013/4/15    2013/5/14     5 2013/4/17    2013/5/16     8 2013/4/20    2013/5/19     12   シート2に A列(将来の日付)        B列 2013/4/15            5 2013/4/16            5   2013/4/17            13   2013/4/18            13 2013/4/19            13 2013/4/20            25 2013/5/14            20    2013/5/15            20     2013/5/16            12 2013/5/17            12 2013/5/18            12 2013/5/19            0      シート2のA列は連続の日付です。 シート2 B列にその日の在籍者の人数を表示させたいのですが どのような関数を使えばよいのかわかりません。 研修センターで、先々の人数の把握をしたいのですが集計に手間取り困っています。 よろしくお願い申し上げます。    

専門家に質問してみよう