- ベストアンサー
ある文字の入ってる行の個数を求めたい。
A B C D 1 海 山 川 =OR(A1="山",B1="山",C1="山" 2 山 山 海 =OR(A2="山",B2="山",C2="山" 3 川 海 海 =OR(A3="山",B3="山",C3="山" 4 =COUNTIF(D1:D3),TRUE 上記の表で"山"が有るセルを含む行の個数を表示したい。 今は上記の表の脇に次のようにしてますが、もっと良い方法が、 あるかと思い質問します。宜しくお願いします。 =OR(A1="山",B1="山",C1="山" 1の行に"山"が有ればTRUEとして これを各行で行い=COUNTIF(D1:D3),TRUEで結果、”2”と行の個数を 求めてます
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問者には初見かもしれないが、配列数式という解き方があり、 それでやってみます。 例データ A2:D6 海 山 河 田 山 山 海 田 海 岸 岸 橋 山 岸 山 田 岸 海 川 山川 デーたのあるセル以外に =SUM(IF(COUNTIF(OFFSET(A2,ROW(A2:A6)-2,0,1,4),"山")<>0,1,0)) と入れて、SHIFT、CTRL,Enterの3つのキーを同時に押す・ 前後が{ }でかこまれる。 結果 3 ROW(A2:A6)-2+1行すなわちA2行を起点にして、A2,A3、A4、A5、A6の行について、4列A-D列を問題にして、「山」という値のセルを勘定して 0でなければ1、0なら0を各行分足し合わせている。 「山川」のセルは上記式では勘定されない。 既出回答1部のように、作業列が要らないメリットあり。 ーーー この質問は作業列を使わないなら、難しい課題に入ると思う。 質問者には難しすぎる問題だと思うので、問題数をこなし、経験するより他ない。ただし、このニーズの類型は平凡なものなので、過去にも類似質問が出たかもしれない。
その他の回答 (2)
D1: =(COUNTIF(A1:C1,"山")>0)*1 D2: =(COUNTIF(A2:C2,"山")>0)*1 D3: =(COUNTIF(A3:C3,"山")>0)*1 D4: =SUM(D1:D3)
お礼
早々に回答ありがとうございます。 =0>0はFALSE*1で0 =1>0はTRUE*1で1 と、なる事わかりました。
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法はいかがでしょうか? =SUMPRODUCT((COUNTIF(OFFSET($A$1:$C$1,ROW($A$1:$A$3)-1,),"山")>0)*1) または、 =COUNT(0/MMULT((A1:C3="山")*1,1^ROW(1:3)))
お礼
早々と回答をありがとうございます。 ためしたところ、うまくいきました。 ただ答えが出るわけを、勉強中です。
お礼
回答を、ありがとうございます。 また、解説まで入れてもらい、理解への助けになります。 ANo1と、一緒ですが、式が理解できてないので勉強中です。