• 締切済み

エクセルでの重複する条件の数を数え方を教えてください。

エクセルでの重複する条件の数を数え方を教えてください。 エクセルのデータ処理をしているのですが 2つ以上の条件をいくつか設定して、その数を知りたいのですが うまくできないのでどなたか知恵を貸してください。 B   C  D 1 11  1  1 2 11  3  1 3 12  1  1 4 13  1  2 5 14  2  2 6 14  3  2 7 14  3  2 8 15  1  2 9 15  3  2 10 16  1  3 と数字が並んでいる中で、 1、D列を数字毎に一つのグループとして、その中の同じ数字を一つとして考えるとき全部でいくつあるか  を数えたい場合はどうすればいい (D列1のグループの中にB列では2つあるという感じで) 2、D列を数字毎に一つのグループとして、B列の内訳をC列とすると、D列の一つのグループの中に   C列の「1」と「3」の数、「2」と「3」の数をそれぞれ数えたい時はどうしたらよいでしょうか   (D列2のグループで、B列が同じ数字の「1、3」の全部の数は3「2、3」の全部の数は3)   となるようにパシッとなんかできることがあれば教えてください。 説明がうまくいってないかもしれませんが、よろしくお願いしますm(_)m

みんなの回答

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

お示しのデータが2行目から下方にあるとします。 また、入力されているデータは100以下の整数とします。 作業列をいくつか使って対応します。 E2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNT(D2,B2)=2,D2+B2*0.01,"") F2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(E2="","",IF(COUNTIF(E$2:E2,E2)=1,INT(E2)+(COUNTIF(F$1:F1,">="&INT(E2))-COUNTIF(F$1:F1,">="&INT(E2)+1)) *0.01+0.01,"")) その結果F列には1.01 1.02 2.01 2.02 2.03などの数値が表示されます。これは1のグループではB列では2つのグループが、2のグループではB列では3つのグループがあることを示しています。 G2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNT(B2:D2)=3,D2+B2*0.01+C2*0.0001,"") H2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(G2="","",IF(COUNTIF(G$2:G2,G2)=1,INDEX(F:F,MATCH(INT(G2*100)/100,E:E,0))+(COUNTIF(H$1:H1,">="&INDEX(F:F,MATCH(INT(G2*100)/100,E:E,0)))-COUNTIF(H$1:H1,">="&INDEX(F:F,MATCH(INT(G2*100)/100,E:E,0))+0.01))*0.0001+0.0001,"")) この結果H列には1.0101 1.0102 1.0201 2.0101 2.0201 2.0202 2.0301 2.0302などの数値が表示されます。整数部分がD列でのグループに属し、小数点2桁までがD列とB列を考慮したグループになり、さらにその下の数値がD列、B列およびC列を考慮したグループとなります。 最後の2.0302の数値はD列で2のグループ、B列では2のグループのうちの第3のグループ、C列では第3グループの中の2番になるグループということになります。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

1.のD列の数字ごとのB列の種類の数は以下のような式で求められます。 (F1セル以下にD列の検索対象の数字が入力されている場合) =SUMPRODUCT((MATCH($B$1:$B$10&"",$B$1:$B$10&"",0)=ROW($B$1:$B$10))*($D$1:$D$10=F1)) 2.の条件が良くわかりません。 たとえばD列が2の場合に、C列とB列の条件は具体的にどのようになっているのでしょうか? B,C列の検索条件と、その結果カウントするB列とC列のデータをもう少し具体的に例示してください。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ぎゃふん,間違いがありました。 >2 F2にグループの3を記入して 1と3 =COUNT(1/FREQUENCY((D1:D10=F2)*((C1:C10=1)+(C1:C10=3))*(B1:B10),(D1:D10=F2)*((C1:C10=1)+(C1:C10=3))*(B1:B10)))-1 2と3 =COUNT(1/FREQUENCY((D1:D10=F2)*((C1:C10=2)+(C1:C10=3))*(B1:B10),(D1:D10=F2)*((C1:C10=2)+(C1:C10=3))*(B1:B10)))-1 勿論「1と3」や「2と3」をそれぞれセルに書いて式に組み込んでも構いません。失礼しました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>1 F2にグループの1を記入して =COUNT(1/FREQUENCY((D1:D10=F2)*C1:C10,(D1:D10=F2)*C1:C10))-1 >2 F2にグループの3を記入して 1と3 =COUNT(1/FREQUENCY((D1:D10=F2)*((C1:C10=1)+(C1:C10=3))*(B1:B10),(D1:D10=F2)*((C1:C10=1)+(C1:C10=3))*(B1:B10))-1) 2と3 =COUNT(1/FREQUENCY((D1:D10=F2)*((C1:C10=2)+(C1:C10=3))*(B1:B10),(D1:D10=F2)*((C1:C10=2)+(C1:C10=3))*(B1:B10))-1) #ばしっとするには条件出しが曖昧ですし,ご質問で「こういう結果が欲しい」も間違ってます。

関連するQ&A