• ベストアンサー

エクセル グループ員の内容を判別する関数

次のエクセルの関数を教えてください グループ名は数字6桁です。 グループの構成員は1~6人で、決まっていません。 構成員の種別を0,1,2,3,4,#n/aの5種類に分けました。 各グループの内、構成員が0と1、もしくは1だけの種別で構成されているグループを割り出したいのです。 例 列A      列B グループ名   構成員 123456     0 123456     1 123456     0 111111     0 111111     0 222222     2 222222     0 222222     1 333333     1 333333     1 444444     #n/a 444444     1 444444     1 555555     3 555555     4 666666     1 この場合は、抽出されるグループは次のものです。 123456 333333 666666 関数でできるでしょうか。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

回答No.1の訂正です。 A1からデータがあるものでテストしてました。A2からの感じなので C2に =IF(A2=A3,"",IF(COUNTIF($A$2:$A$100,A2)-SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100=0)*1)=0,"",IF(COUNTIF($A$2:$A$100,A2)-SUMPRODUCT(($A$2:$A$100=A2)*(($B$2:$B$100=1)+($B$2:$B$100=0))*($B$2:$B$100<>"")*1)=0,ROW(A1),""))) 出したい列に =IFERROR(INDEX($A$2:B$100,MATCH(SMALL(C$2:C$100,ROW(A1)),C$2:C$100,0),1),"")

pocorino
質問者

お礼

欲しい答えが得られました。 複雑な関数なので、なかなか理解できないのですが、これから自分なりに分析しようと思います。 ありがとうございました。

Powered by GRATICA

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

#N/Aがあると計算できないので B列の式を =IFERROR(元の式,"") にして#N/Aを消してもらって 長くなりますが C1に =IF(A1=A2,"",IF(COUNTIF($A$1:$A$100,A1)-SUMPRODUCT(($A$1:$A$100=A1)*($B$1:$B$100=0)*1)=0,"",IF(COUNTIF($A$1:$A$100,A1)-SUMPRODUCT(($A$1:$A$100=A1)*(($B$1:$B$100=1)+($B$1:$B$100=0))*($B$1:$B$100<>"")*1)=0,ROW(A1),""))) として下にコピーで作業列を作ります。 結果を出したい列に以下の式を入れて下にコピーして試してください。 =IFERROR(INDEX($A$1:B$100,MATCH(SMALL(C$1:C$100,ROW(B1)),C$1:C$100,0),1),"")