• ベストアンサー

エクセルCOUNTIF

___|___ TRUE|1     | TRUE|2 TRUE|3     | TRUE|4 といった具合に(見づらいですが)TRUEとなった ところだけの隣にcountifで数えたいのですが どうすればいいですか? ちなみにTRUEとなっているところは、 if(条件,"TRUE","") としたところです。

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

  • ベストアンサー
noname#262398
noname#262398
回答No.6

> TRUEで成功しないのはなぜですか? TRUE,FALSE は論理値だからです。 "TRUE"のように「"」でかこってしまうと、論理値では無く「TRUEという文字列」になってしまいます。 試しに =IF(条件,true,"") と、 「"」を付けずに小文字で入力してみて下さい。 自動的に大文字TRUEに変換されて、セルの中央に配置されます。 =IF(条件,"TRUE","") だと、左詰めになってるはずです。   それで、 =COUNTIF(範囲,"TRUE") =COUNTIF(範囲,TRUE) この式は2つとも「論理値のTRUE」を検索して、「文字列のTRUE」は検索されないようです。 ですので、解決策は 元のIF文を、 =IF(条件,TRUE,"") 「"」を付けないようにすれば、 #3,#4の式でOKのはずです。 =IF(条件,"TRUE","")  この式のままでやるなら =IF(A1="TRUE",COUNTA($A$1:A1)-COUNTIF($A$1:A1,""),"") と、しなければならないでしょう。

koton_
質問者

お礼

ありがとうございます。 解決しました。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#4です。 >MAX関数を使わない方法はありませんか 最初(データ)行から、今問題にしている行までのTRUEの数を作業列なしに出す(数える)のは、配列数式(ご存知?)というものを使わないとできないと思うので、なおさら理解が難しくなりますよ。 質問でのTRUEという値を出す作業列を作る(使う)のは、余分な列がいるわけですから、使わなければベターでしょう。 MAX関数なんて、和・差についで平均・最大・最小はよく使われる関数ですよ。なぜ使わない法を考えるのか。 ただOKWAVEの回答は、「私は!」こういう方法もありますと、言う意味で上げているのです。取捨は質問者の好きなのを選んでいるようですが。

koton_
質問者

補足

今回の場合COUNTIFを使いたいのです。 申し訳ありません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

もし条件該当行に連番を振りたいのなら、OKWAVEで、自称「imogasi方式」と称して、私が多数回答している、質問に沢山例がありますが、 B2に=IF(A2="a",MAX($B$1:B1)+1,"") と入れて下へ式を複写する A2:B11 A列  B列 a 1 b c a 2 s d a 3 a 4 s d コツは第2行目からデータを入力開始しB1はスペースまたは文字列にして、数字を入れないようシートの表を設計することです。 また絶対番地にしている$のつける位置に注意ください。

koton_
質問者

補足

ありがとうございます。 しかしMAX関数を使わない方法はありませんか?

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

こういうことかな? A1以下にTRUEがあるものとします。 絶対参照と相対参照に注意! =IF(A1,COUNTIF($A$1:A1,TRUE),"")

koton_
質問者

補足

IF(A1,COUNTIF($A$1:A1,TRUE),"") A1="TRUE"としないと#VALUEとなりました。 ありがとうございます。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

TRUEがA1から合ったとして、B1に =IF(A1=TRUE,COUNTIF($A$1:A1,TRUE),"") と入力して、下にコピーする。 といったことでしょうか。

koton_
質問者

補足

=IF(A1="TRUE",COUNTIF($A$1:A1,"TRUE"),"") のようにしてみたのですが、 TRUEというのがカウントされませんでした。 表のTRUEを例えば"出席"にした場合 =IF(A1="出席",COUNTIF($A$1:A1,"出席"),"") にしてみたら、うまくカウントされました。 TRUEで成功しないのはなぜですか?

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

質問の内容がいまいちわかりませんが・・・ (そのまま、「countif」の使い方の説明になってしまう。) countifの使い方は、 =COUNTIF(範囲,"条件") です。なので「C5」から「C25」までに「TRUE」が入っているなら =COUNTIF(C5:C25,"TRUE") です。

関連するQ&A

専門家に質問してみよう