• 締切済み

エクセルでの質問です。

エクセルでの質問です。 日付とIDがあり、ひとつのIDで同じ日付がいくつかあります。 同じ日付は1つと数えて、ID毎に日付の数を出すにはどうしたらいいでしょうか。 日付        ID 2008/10/10    351 2008/10/10    351 2008/10/10    351 2010/01/23    351 2010/01/23    351 2010/08/24    351 ID 351 3つ

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2です。 大変失礼をいたしました。 E2セルへは次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(E$1:E1)+1,""))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

お示しの表がシート1に有るとして、A1セルには日付、B1セルにはIDの文字がそれぞれ入力されており、各データは2行目から下方に有るとします。 初めにB列を最優先に、またA列を次の優先順にして昇順で並べ替えをします。 次に作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",B2&"/"&A2) 次にD2セルには次の式を入力して下方いオートフィルドラッグします。 =IF(C2="","",IF(AND(COUNTIF(B$2:B2,B2)=1,COUNTIF(C$2:C2,C2)=1),1,IF(COUNTIF(C$2:C2,C2)>1,0,IF(COUNTIF(C$2:C2,C2)=1, MAX(INDEX((B$1:B1=B1)*D$1:D1,))+1,"" )))) また、E2セルには次の式を入力して下方にオートフィルドラッグします。 お求めの表は同じシートでもよいのですが並べ替えなどで式の位置が変わることもありますので、シート2に表示することにします。 A1セルにはID、B1セルには異日付種類数とでも入力します。 A2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>MAX(Sheet1!E:E),"",INDEX(Sheet1!B:B,MATCH(ROW(A1),Sheet1!E:E,0))) B2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",MAX(INDEX((Sheet1!B2:INDIRECT("Sheet1!B"&COUNT(Sheet1!D:D)+1)=A2)*Sheet1!D2:INDIRECT("Sheet1!D"&COUNT(Sheet1!D:D)+1),)))

arasiko
質問者

補足

ありがとうございます。 E2セルに入力する式を教えて下さい。

回答No.1

最も簡単な方法は、データの集計機能を使う方法です。 ただ条件としてキーとなるデータを昇順か降順にソートしておく必要があります。 その後でデータ→集計を呼び出し、IDを集計キーとして集計方法をデータ件数とすれば、キーごとの件数が表示できます。 これが一番簡単で実用的です。

arasiko
質問者

補足

ありがとうございます。 集計機能は使ったことがないので、もう少し教えて下さい。 IDで並べ替えて集計してみたのですが、同じ日付も全部カウントなって しまったのですが、やり方が悪いのでしょうか?

関連するQ&A

専門家に質問してみよう