• ベストアンサー

ある文字の入ってる行の個数を求めたい。

  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”と行の個数を 求めてます   

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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部のように、作業列が要らないメリットあり。 ーーー この質問は作業列を使わないなら、難しい課題に入ると思う。 質問者には難しすぎる問題だと思うので、問題数をこなし、経験するより他ない。ただし、このニーズの類型は平凡なものなので、過去にも類似質問が出たかもしれない。

cabin8
質問者

お礼

回答を、ありがとうございます。 また、解説まで入れてもらい、理解への助けになります。 ANo1と、一緒ですが、式が理解できてないので勉強中です。

その他の回答 (2)

noname#204879
noname#204879
回答No.2

D1: =(COUNTIF(A1:C1,"山")>0)*1 D2: =(COUNTIF(A2:C2,"山")>0)*1 D3: =(COUNTIF(A3:C3,"山")>0)*1 D4: =SUM(D1:D3)

cabin8
質問者

お礼

早々に回答ありがとうございます。 =0>0はFALSE*1で0 =1>0はTRUE*1で1 と、なる事わかりました。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆こんな方法はいかがでしょうか? =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)))

cabin8
質問者

お礼

早々と回答をありがとうございます。 ためしたところ、うまくいきました。 ただ答えが出るわけを、勉強中です。