• 締切済み

複数条件かつ重複を除いた数を算出する関数(マクロ

複数条件を満たし、かつ、重複を除いた値(ユニーク化した値)を算出する 関数(またはマクロ)を教えてください。 ※マクロの場合は、別シートへの出力が希望です。 一度、SUMPRODUCT((Sheet1!$C$2:$C$65536="2011/1/17")*(Sheet1!$D$2:$D$65536 ="2011/1/25"))で算出してみましたが、重複した値までカウントしてしまうので、困っており ます。 日付1と日付2を1つの組み合わせとし、フラグ列の重複を除いた状態(ユニーク化した状態) で、種類数を算出出来れば嬉しいです。 【元データ】 住所     職業     日付1     日付2       フラグ 東京都    会社員   2011/1/17   2011/1/28   AAA 千葉     会社員   2011/1/17   2011/1/28   BBB 東京都    主婦     2011/1/17   2011/1/28   AAA 愛知     公務員   2011/1/17   2011/1/25   AAA 神奈川    主婦     2011/1/17   2011/1/25   CCC 富山     無職     2011/1/31   2011/2/11   DDD 沖縄     公務員   2011/1/31   2011/2/11   EEE 北海道    無職     2011/1/31   2011/2/11   EEE 埼玉     会社員   2011/1/31   2011/2/11   DDD 沖縄     公務員   2011/3/14   2011/3/25   GGG 千葉     会社員   2011/3/7    2011/3/18    HHH 【希望】 日付1         日付2      数 2011/1/17     2011/1/25    2 ←2011/1/17と2011/1/25の組み合わせで、フラグ列にAAA,CCCの2種類あり 2011/1/17     2011/1/28    2 ←2011/1/17と2011/1/28の組み合わせで、フラグ列にAAA,BBBの2種類あり 2011/1/31     2011/2/11    2 ←2011/1/31と2011/2/11の組み合わせで、フラグ列にDDD,EEEの2種類あり 2011/3/7      2011/3/18    1 ←2011/3/7と2011/3/18の組み合わせで、フラグ列にHHHの1種類あり 2011/3/14     2011/3/25    1 ←2011/3/14と2011/3/25の組み合わせで、フラグ列にGGGの1種類あり 分かり難くて申し訳ありませんが、どうぞよろしくお願いいたします。

みんなの回答

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

こんばんは! 一例です。 ↓の画像のようにSheet1に作業用の列を4列使っています。 作業列1のF2セルに =IF(A2="","",C2&"_"&D2) 作業列2のG2セルに =IF(OR(F2="",COUNTIF($F$2:F2,F2)<>1),"",ROW()) 作業列3のH2セルに =F2&E2 作業列4のI2セルに =IF(COUNTIF($H$2:H2,H2)=1,ROW(),"") としてF2~I2セルを範囲指定し、I2セルのフィルハンドルでダブルクリック、またはオートフィルでずぃ~~~!っと下へコピーしておきます。 (作業列が目障りであれば数式を入力後、非表示にします) そして、Sheet2のA2セルに =IF(COUNT(Sheet3!$G:$G)<ROW(A1),"",INDEX(Sheet3!C:C,SMALL(Sheet3!$G:$G,ROW(A1)))) として、隣のB2セルまでコピー (セルの表示形式は「日付」にしておきます) C2セルには =IF(COUNTBLANK(A2:B2),"",SUMPRODUCT((Sheet3!$C$1:$C$1000=A2)*(Sheet3!$D$1:$D$1000=B2)*(Sheet3!$I$1:$I$1000<>""))) (SUMPRODUCT関数はデータ量が多すぎるとPCにかなりの負担をかけますので、とりあえず1000行目までとしています) として最後にA2~C2セルを範囲指定しC2セルのフィルハンドルでオートフィルで下へコピーすると 画像のような感じになります。 以上、かなり泥臭い方法ですが、他に良い方法があればごめんなさいね。m(__)m