• ベストアンサー

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

昨日から頭を抱えています。   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

  • 3っつの列の重複種類の個数抽出

    どなたかお知恵をお貸しいただけないでしょうか。 3列のデータで重複している種類がいくつあるかを出したいのですが、sumproductなどを使用しできるものなのでしょうか?   A  B  C  D 1 あ  う     え 2 い  い  あ  あ 3 う     あ 4 え     か   い 上記データ行列で、A列にあり、且つBかC列にあり、且つD列にある文字の種類を○個とだしたいのですが、可能でしょうか? 上記だと、「あ、い」が重複しているので、「2」と表示するような関数です。 論理的に言うと、 「A列 and (B列かC列) and D列」 と言うような状態です。 sumproductとcountifなどを駆使してできたらと思っているのですが、どなたかお知恵をお貸しください。 申し訳ございませんがよろしくお願いいたします。

  • エクセルで重複を除いた日付のカウント(条件付き)

    過去の記録にもなく、困っています。 エクセルで(A列の)日付をカウントしたいのですが、重複して困っています。 「C1」に任意の日付(○月○日)を入れると、「D1」に○月○日以下の日付がカウントされるようにしたいのです。      A     B    C     D 1  4月5日         2  4月6日 3  4月6日 4  4月6日 5  4月7日 6  4月7日 7  4月8日 D1に =COUNTIF(A:A,"<="&C1) といれてみると、重複してカウントされてしまうのですが、重複を除いてカウントがしたいのです。 ちなみに(C1)に「4月7日」を入れると、(D1)に「3」になるようにしたいのに、重複して「6」となってしまいます。 おいそがしいと思いますが、どうかご教授をお願いいたします。

  • エクセル関数で重複チェック

    エクセル2010です。 ワークシートのB10:B17の範囲に数値(1から200くらいの自然数)が入力されます。 この範囲が空白になることはありません。 この範囲内での重複(同じ数値の入力)をチェックしたいのです。 ただし、1は何個あろうが重複に含めません。 となりの列あたりを作業列にして、COUNTIFでもできますが、1個のセルで完結させたいと思います。 まず、1を超える数値の個数を取得し、そこから1を除く数の種類の数を引いて0になれば重複はないのではないかと思い、下記の数式を書いてみました。これでTRUEなら重複はないと思いますが、もっと簡単な方法があるのではないかと質問いたしました。 よろしく願いします。 =COUNTIF(B10:B17,">1")-(SUMPRODUCT(1/COUNTIF(B10:B17,B10:B17))-(COUNTIF(B10:B17,"=1")>0))=0

  • どんどん増えるデータの重複しないデータの個数

       A列    B列 1 2    3      6 3  4    a     a-1 5    a      a-2 6    b      b-1 7    b      b-2 8    b      b-3 9    c      c-1 たとえば上記のような表を作りたいと思っています。、 10行目以降もデータは増えていきます。 作業列を作らずにA2セルにA4以降のA列の重複しないデータの個数を 表示させる方法を教えてください。

  • 【エクセル】重複データ抽出時にうまくいかない

    エクセル2003で、[データ]→[フィルタ]→[フィルタオプションの設定]で下記のように 設定して重複データを省きました、 ・「指定した範囲」にチェック ・「リスト範囲」に$A$1:$A$13を入力。 ・「抽出範囲」に$B$1を入力 ・「重複するレコードは無視する」にチェック の条件で実行すると。 [元データ]  A列 1 a 2 a 3 b 4 b 5 c 6 c 7 c 8 d 9 d 10 d 11 e 12 e 13 e が [フィルタ実行後]  A列  B列 1 a  a 2 a  a 3 b  b 4 b  c 5 c  d 6 c  e 7 c 8 d 9 d 10 d 11 e 12 e 13 e の様にB列でaが2つ出てしまいます。 なにが原因でしょうか?

  • エクセルで時間まで含んでいる日付のセルの重複を除いた個数を出したい

    エクセルで時間まで含んでいる日付のセルの重複を除いた個数を出したいのですが B列の行に日付が8/3と言う表示形式でずっと並んでいます。しかしこのセルは日付だけでなく訳あって実際には時間も含んでいます。 標準表示でみると「40028.1234」みたいな感じになっているわけです・・・ それで、B列の行にある日付は重複している日付もあります。それを重複を除いて数えたいのですが・・・ 色々な関数で試したのですがLEN(B3:B100,5)などを入れると使えなくなってしまう関数だったりして結局できませんでした・・・ 表は下記のようになっています。     A   B   C   D ・・・ 3   8/3 4   8/3 5   8/4 6   8/6 7   8/6 8   8/6 9   8/8 ・ ・ ・ 上記の結果を重複を除いて「4」と出したいのですが・・・ 3より上の行には日付とは関係ないものが入力されており 9より下の行にはこれから日々増えていく行があり現時点では未入力です 何行まで増えるかわからないのでB3:B100みたいな感じで指定しておきたいのですが・・・ よろしくお願いします。

  • Excel 個数の集計時の重複削除について教えてください。

    COUNTIFを使用し個数を集計したのですが、 同じ値がでてきた時に重複してしまいました。 よい関数を教えてください。 A列  B列(カウント) 111  2 222  1 111 =COUNTIFだとこれも2となってしまうので、行を非表示(または削除)したデータを他シートに表示したい。 333  1 よろしくお願いします。

  • エクセル 重複データの検索(COUNTIF関数!?)

    A列とB列で、重複しているデータ(数字)を検索するための関数を教えて下さい。 確か、こんなような↓関数だったと思うのですが、ちょっと違うようです。 C2=IF(COUNTIF(A2,B1:B2377),"","×")

  • 重複するデータの個数と合計

    こんにちは、2度目の質問です。 またブチ当たってしまいました。    A  |  B 1 A01 |  100 2 B01 |  100 3 A01 |   20 4 C01 |   20 5 A01 |   30 6 A01 |  100 7 A01 |   50 8 C01 |   60 9 B01 |   80 上記のような表があります。 このとき、セル"A1"~"A9"までの、 「A01」の個数は何個か、 「B01」の個数は何個か、 「C01」の個数は何個か、 また、セル"B1"~"B9"までの、 「A01」のB行における数値の合計はいくつか、 「B01」のB行における数値の合計はいくつか、 「C01」のB行における数値の合計はいくつか、 と言うマクロを考えなくてはなりません。 この例のように、たかだか3個とか10個ぐらいなら"COUNTIF"関数を使えばなんて事無いのですが、 この「A01」のような物が1000以上(例えて言うとA0001~A1000と言った感じ)あり、 それが全てランダムで出てきますので、関数で行うのは無理のような気がします。 また、この様な情報が記入されたシートが膨大な量あり、このシート全てに同じ処理を 行わなくてはならず、オートフィルタは使いたくありません。 出来れば、ボタン一発で計算したいのです。 条件に合った重複データの抽出、という質問は良く見かけますが、この様に条件付けが難しい場合は、 どのようにマクロを組めば良いでしょうか、何卒アドバイスをお願いいたします。

  • 2つ以上の条件でエクセルで重複したデータを抽出したい

    下記のようなエクセルのデーターがあったとします。 「氏名が重複していてかつ個数も重複するもの」 を抽出したいのですがどうすればよいでしょうか? いろいろ検索したところIF(SUMPRODUCT(($A$3:A3=A3)*($B$3:B3=B3))>1,"同じ人","") という風にすればよいようなのですが、この式自体がよくわかりません。IF関数の中にSUMPRODUCTを ネストするところまではわかるのですがその後の式「:A3=A3)*($B$3:B3=B3))」までがわかりません。 何を選んでこういった式になるのでしょうか??初歩的な質問で申し訳ないのですが、教えてください。 よろしくお願いします。 A列 B列 氏名 個数 加藤 1 新妻 2 加藤 1 鈴木 3 加藤 6 小島 8

専門家に質問してみよう