- ベストアンサー
エクセルCOUNTIF
___|___ TRUE|1 | TRUE|2 TRUE|3 | TRUE|4 といった具合に(見づらいですが)TRUEとなった ところだけの隣にcountifで数えたいのですが どうすればいいですか? ちなみにTRUEとなっているところは、 if(条件,"TRUE","") としたところです。
- みんなの回答 (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,""),"") と、しなければならないでしょう。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
#4です。 >MAX関数を使わない方法はありませんか 最初(データ)行から、今問題にしている行までのTRUEの数を作業列なしに出す(数える)のは、配列数式(ご存知?)というものを使わないとできないと思うので、なおさら理解が難しくなりますよ。 質問でのTRUEという値を出す作業列を作る(使う)のは、余分な列がいるわけですから、使わなければベターでしょう。 MAX関数なんて、和・差についで平均・最大・最小はよく使われる関数ですよ。なぜ使わない法を考えるのか。 ただOKWAVEの回答は、「私は!」こういう方法もありますと、言う意味で上げているのです。取捨は質問者の好きなのを選んでいるようですが。
補足
今回の場合COUNTIFを使いたいのです。 申し訳ありません。
- imogasi
- ベストアンサー率27% (4737/17069)
もし条件該当行に連番を振りたいのなら、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はスペースまたは文字列にして、数字を入れないようシートの表を設計することです。 また絶対番地にしている$のつける位置に注意ください。
補足
ありがとうございます。 しかしMAX関数を使わない方法はありませんか?
- merlionXX
- ベストアンサー率48% (1930/4007)
こういうことかな? A1以下にTRUEがあるものとします。 絶対参照と相対参照に注意! =IF(A1,COUNTIF($A$1:A1,TRUE),"")
補足
IF(A1,COUNTIF($A$1:A1,TRUE),"") A1="TRUE"としないと#VALUEとなりました。 ありがとうございます。
- masa_019
- ベストアンサー率61% (121/197)
TRUEがA1から合ったとして、B1に =IF(A1=TRUE,COUNTIF($A$1:A1,TRUE),"") と入力して、下にコピーする。 といったことでしょうか。
補足
=IF(A1="TRUE",COUNTIF($A$1:A1,"TRUE"),"") のようにしてみたのですが、 TRUEというのがカウントされませんでした。 表のTRUEを例えば"出席"にした場合 =IF(A1="出席",COUNTIF($A$1:A1,"出席"),"") にしてみたら、うまくカウントされました。 TRUEで成功しないのはなぜですか?
- edomin
- ベストアンサー率32% (327/1003)
質問の内容がいまいちわかりませんが・・・ (そのまま、「countif」の使い方の説明になってしまう。) countifの使い方は、 =COUNTIF(範囲,"条件") です。なので「C5」から「C25」までに「TRUE」が入っているなら =COUNTIF(C5:C25,"TRUE") です。
お礼
ありがとうございます。 解決しました。