- ベストアンサー
エクセル関数 日別の重複しないデータの個数を求める
昨日から頭を抱えています。 A B C D 1月1日 123 1月1日 2 1月1日 123 1月2日 1 1月1日 123 1月3日 2 1月1日 234 ・ 1月2日 345 ・ 1月2日 345 ・ 1月3日 456 1月3日 567 1月3日 567 ・ ・ 上記、A列・B列を元に、C列に重複しない日付、D列にその日付に対応したB列の『重複しないデータの個数』を求めたいのです。 フィルタオプションもSUMPRODUCTもCOUNTIFも使ってみましたが、 D列がうまくいきません。 どうかご教示願います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- bin-chan
- ベストアンサー率33% (1403/4213)
それなりの準備が必要ですが、「外部データの取り込み」という機能で MS Query経由でも集計できます。 (すべて説明しきることが難しいけど) 1)「アドイン」で[MS Queryアドイン]を利用可能にする。 2)データの範囲を指定して「名前」を定義。 見出しも作成。 3)データ>外部データの取り込みでクエリを定義する。 日付・値でGroupByして、[日付]・[値]・[件数として固定値1]を返すクエリを作成し、そのクエリを日付・値でGroupByして[日付]・sum([件数])で表示できます。
お礼
ご回答ありがとうございます! かなり高度な感じがしていますが、今後の勉強課題になりました。 遅い時間にもかかわらずありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 作業用の列を3列使っていますので、少し手間がかかるかもしれません。 ↓の画像で作業列C2セルは =A2&B2 D2セルは =IF(OR(A2="",COUNTIF($A$2:A2,A2)<>1),"",ROW(A1)) E2セルは =IF(OR(C2="",COUNTIF($C$2:C2,C2)<>1),"",1) としれ、C2~E2セルを範囲指定し、E2セルのフィルハンドルで下へずぃ~~~!っとコピーします。 そして、G2セルに =IF(COUNT($D$2:$D$1000)<ROW(A1),"",INDEX($A$2:$A$1000,SMALL($D$2:$D$1000,ROW(A1)))) H2セルに =IF(G2="","",SUMPRODUCT(($A$2:$A$1000=G2)*($E$2:$E$1000=1))) という数式を入れ、G2・H2セルを範囲指定し、H2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、数式は元データが1000行目まで対応できるようにしています。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m
お礼
できました!! 早速のご回答に感謝感謝です。 こんなに複雑な数式をあっさり作れる方を尊敬します。 本当にありがとうございました。
お礼
ありがとうございます!! 見事にできました!! はじめての相談でしたので本当に回答がいただけるか心配でずっと待っていました。とても親切なご説明ありがとうございました。 胃の痛みがなくなりました。 本当に貴重なお時間を割いて頂きありがとうございました。