- ベストアンサー
エクセル2000で文字列AかBを含むセル数を求める方法
- エクセル2000で、文字列AかBを含むセル数を求める方法について説明します。
- SUMPRODUCT関数を使用して、A1:A10のセル範囲内で文字列AかBが含まれるセルの数を求めることができます。
- 重複を除外するためには、以下のような簡素な式を使用することができます:=SUMPRODUCT((ISNUMBER(FIND("A",A1:A10))+ISNUMBER(FIND("B",A1:A10))>=1)*1)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以下だと重複カウントされます。 =SUMPRODUCT((ISNUMBER(FIND("A",A1:A10))+ISNUMBER(FIND("B",A1:A10)))) 理由は、Aがあるとき「ISNUMBER(FIND("A",A1:A10))」はTRUE、Bがあるとき「ISNUMBER(FIND("B",A1:A10))」はTRUE、なので、TRUE+TRUE=2となります。(=TRUE+TRUEという式をセルにいれれば2になるはずです) 本題の以下ですが、 =SUMPRODUCT((ISNUMBER(FIND("A",A1:A10))+ISNUMBER(FIND("B",A1:A10))>=1)*1) TRUE+TRUE=2、TRUE+FALSE=1、FALSE+TRUE=1、いずれも1以上なので、「(ISNUMBER(FIND("A",A1:A10))+ISNUMBER(FIND("B",A1:A10))>=1)*1」の結果は2でも1でも1とカウントします。 なので、結果は重複なしになります。
その他の回答 (2)
- mu2011
- ベストアンサー率38% (1910/4994)
>AB両方があるセルが重複カウントされないのかどうもわかりません。 ⇒sumproduct式の「+」は論理和ですから、両文字がある場合、1+1⇒1となるので重複計数されません。
お礼
mu2011さま、ありがとうございます。 そのとおりでした。 不勉強を痛感しました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
SUMPRODUCT関数では答えがTRUEであれば1、FALSEであれば0と数えられますね。AとBが同時に含むセルではISNUMBER(FIND("A",A1:A10))+ISNUMBER(FIND("B",A1:A10))の値は2になりますが式ではその足し合わせた値が1以上の場合にはということで、2の場合であってもその答えは1以上、すなわちTRUEとなって1が返されますね。
お礼
KURUMITOさま、ありがとうございます。 言われてみればそのとおりですね。 不勉強でした。 反省(T.T)
お礼
なあ~るほどぉ! 非常にわかりやすい解説をありがとうございました。 ISNUMBER(FIND("A",A1:A10))+ISNUMBER(FIND("B",A1:A10))>=1)がTRUEを返すから、それに*1してるってことですね。 納得しました。 kyboさま、ありがとうございます。(o。_。)oペコッ.