• 締切済み

エクセルの関数について

エクセルの関数について質問です。 A1-A20にランダムに花名 B1-B20に○か空欄があります。 チューリップ   ○ バラ        ○ カーネーション  ○ バラ バラ カーネーション チューリップ チューリップ カーネーション チューリップ A1-A10 B1-B10全体で、 B列の「○」がある場所で A1-A10の花名が1種類のみ時は、「真」 A1-A10の花名が2種類以上の時は、「偽」 とするには、どうしたら良いのでしょうか? ちなみに、上の表だと「偽」です。 お願い致します。

みんなの回答

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

B列の「○」がある場所でA1-A10の花名の種類はたとえば以下の数式で表示できます。 =COUNT(INDEX(1/INDEX((MATCH(A1:A10&B1:B10,A1:A10&B1:B10,)=ROW(1:10))*(B1:B10="○"),),)) "真"や"偽"を返したいなら、上記の数式を使って適宜IF関数で条件分けをしてください。 =IF(上記の式=1,"真","偽")

noname#204879
noname#204879
回答No.5

添付図参照 C1: =IF(B1="○",A1,"") E1: {=IF(SUM(IF(B1:B10="○",1/COUNTIF(C1:C10,C1:C10),""))=1,"真","偽")}   (配列数式)

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

こんばんは! B列は「○」か空白のどちらかだとします。 C1セルに =IF(B1="","",IF(COUNTIF($A$1:$A$10,A1)=1,"真","偽")) としてオートフィルで下へコピーではどうでしょうか?m(_ _)m

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 ANo.1です。  先程の回答はExcelのバージョンがExcel2007以降の場合にしか使えません。  もし、Excel2007よりも前のバージョンのExcelで使う場合には、次の様な式となります。 B列に「○」が1つも無い場合には、「真」とする場合 =IF(COUNTIF($B$1:$B$10,"○"),SUMPRODUCT(($B$1:$B$10="○")*($A$1:$A$10<>INDEX($A$1:$A$10,MATCH("○",$B$1:$B$10,0))))=0,TRUE) B列に「○」が1つも無い場合には、「偽」とする場合 =IF(COUNTIF($B$1:$B$10,"○"),SUMPRODUCT(($B$1:$B$10="○")*($A$1:$A$10<>INDEX($A$1:$A$10,MATCH("○",$B$1:$B$10,0))))=0,FALSE)

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

幾つか手口がありますが、例えば =IF(COUNT(1/FREQUENCY(IF(B1:B10="○",MATCH(A1:A10,A1:A10,0)),IF(B1:B10="○",MATCH(A1:A10,A1:A10,0))))=1,"1種類","偽") と記入し、コントロールキーとシフトキーを押しながらEnterで入力します。

riri-rara
質問者

お礼

ありがとうございまます。 試してみます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 B列に「○」が1つも無い場合には、「真」と「偽」のどちらにすべきなのかが説明されていません。  もし、B列に「○」が1つも無い場合には、「真」とするのでしたら、 =OR(COUNTIF($B$1:$B$10,"○")=0,COUNTIFS($A$1:$A$10,"<>"&INDEX($A$1:$A$10,MATCH("○",$B$1:$B$10,0)),$B$1:$B$10,"○")=0) 「偽」とするのでしたら、 =OR(COUNTIF($B$1:$B$10,"○")=0,COUNTIFS($A$1:$A$10,"<>"&INDEX($A$1:$A$10,MATCH("○",$B$1:$B$10,0)),$B$1:$B$10,"○")=0) となります。

riri-rara
質問者

お礼

ありがとうございます。 真とする場合砥ぎとする場合があるので、ありがたいです。 試してみます。 バーションはXPです。

関連するQ&A