• ベストアンサー

エクセル関数 日別の重複しないデータの個数を求める

昨日から頭を抱えています。   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列がうまくいきません。 どうかご教示願います。

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

  • ベストアンサー
  • 135ok
  • ベストアンサー率34% (26/75)
回答No.2

作業列を作ってもいいのであれば。 添付資料を参照ください。 C2 =A2&B2    *文字をつないで検索文字を作る。 D2 =IF(COUNTIF($C$2:C2,C2)=1,A2,"")    *C列に複数同じ文字がある場合は、1番目のみA列の日付を表示、他は空欄。 G2 =IF(F2="","",COUNTIF(D:D,F2))    *F列が空欄の時は空欄、他はF列の文字がD列に何個あるか表示。

boti_boti
質問者

お礼

ありがとうございます!! 見事にできました!! はじめての相談でしたので本当に回答がいただけるか心配でずっと待っていました。とても親切なご説明ありがとうございました。 胃の痛みがなくなりました。 本当に貴重なお時間を割いて頂きありがとうございました。

その他の回答 (2)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

それなりの準備が必要ですが、「外部データの取り込み」という機能で MS Query経由でも集計できます。 (すべて説明しきることが難しいけど) 1)「アドイン」で[MS Queryアドイン]を利用可能にする。 2)データの範囲を指定して「名前」を定義。   見出しも作成。 3)データ>外部データの取り込みでクエリを定義する。 日付・値でGroupByして、[日付]・[値]・[件数として固定値1]を返すクエリを作成し、そのクエリを日付・値でGroupByして[日付]・sum([件数])で表示できます。

boti_boti
質問者

お礼

ご回答ありがとうございます! かなり高度な感じがしていますが、今後の勉強課題になりました。 遅い時間にもかかわらずありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 作業用の列を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

boti_boti
質問者

お礼

できました!! 早速のご回答に感謝感謝です。 こんなに複雑な数式をあっさり作れる方を尊敬します。 本当にありがとうございました。

関連するQ&A