- 締切済み
エクセルの関数について
エクセルの関数について質問です。 A1-A20にランダムに花名 B1-B20に○か空欄があります。 チューリップ ○ バラ ○ カーネーション ○ バラ バラ カーネーション チューリップ チューリップ カーネーション チューリップ A1-A10 B1-B10全体で、 B列の「○」がある場所で A1-A10の花名が1種類のみ時は、「真」 A1-A10の花名が2種類以上の時は、「偽」 とするには、どうしたら良いのでしょうか? ちなみに、上の表だと「偽」です。 お願い致します。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- MackyNo1
- ベストアンサー率53% (1521/2850)
B列の「○」がある場所でA1-A10の花名の種類はたとえば以下の数式で表示できます。 =COUNT(INDEX(1/INDEX((MATCH(A1:A10&B1:B10,A1:A10&B1:B10,)=ROW(1:10))*(B1:B10="○"),),)) "真"や"偽"を返したいなら、上記の数式を使って適宜IF関数で条件分けをしてください。 =IF(上記の式=1,"真","偽")
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! B列は「○」か空白のどちらかだとします。 C1セルに =IF(B1="","",IF(COUNTIF($A$1:$A$10,A1)=1,"真","偽")) としてオートフィルで下へコピーではどうでしょうか?m(_ _)m
- kagakusuki
- ベストアンサー率51% (2610/5101)
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)
幾つか手口がありますが、例えば =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で入力します。
- kagakusuki
- ベストアンサー率51% (2610/5101)
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) となります。
お礼
ありがとうございます。 真とする場合砥ぎとする場合があるので、ありがたいです。 試してみます。 バーションはXPです。
お礼
ありがとうございまます。 試してみます。