• ベストアンサー
  • 暇なときにでも

COUNTIFで空白表示以外のセル数を取得

エクセル2010です。 セル範囲A1:A10にはすべて数式が入っています。 計算の結果はすべて文字列が返ります。 その中には、="" で空白に表示されたセルもあります。 セル範囲A1:A10で空白に表示されたセルの数は =COUNTBLANK($A$1:$A$10) で求められます。 空白でないセルの数を求める場合 =COUNTA($A$1:$A$10) では、="" も数式が入っているためすべてカウントされ使えません。 やむを得ず、 =SUMPRODUCT(($A$1:$A$10<>"")*1) や =ROWS($A$1:$A$10)-COUNTBLANK($A$1:$A$10) でしのぎました。 これを、COUNTIFで求めることはできないでしょうか? =COUNTIF($A$1:$A$10,"<>""") とやってみましたが、これも全セル数を返すようです。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数256
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.4
  • bunjii
  • ベストアンサー率43% (3557/8172)

>セル範囲A1:A10にはすべて数式が入っています。 >計算の結果はすべて文字列が返ります。 >これを、COUNTIFで求めることはできないでしょうか? 1文字以上の文字列が代入されたセルを検索するのですよね? 下記のようなワイルドカードを使ってください。 =COUNTIF($A$1:$A$10,"?*") ワイルドカードの?は何らかの1文字を意味し、*は文字数を規定しません。 =COUNTA($A$1:$A$10)は「=""」も文字列としてカウントします。(数式があるからでは無いようです)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

bunjiiさん、今回もありがとうございます。 =COUNTIF($A$1:$A$10,"?*") なんと、こんなことができるのですね! とても助かりました。ありがとうございます。

関連するQ&A

  • エクセル/COUNTIF関数で空白以外のセル数取得は?

    エクセル2000のワークシート関数の質問です。 B1~B13には数式が入っており、計算の結果として何らかの文字や数字が表示されたセルと、何も表示されない、つまり=""のセルがあります。 このセル範囲の何かが表示されたセルの個数を取得する関数を探しています。 =COUNTIF(B1:B13,"<>""") としてみましたが全セル数の13が返りました。 やむをえず =ROWS(B1:B13)-COUNTBLANK(B1:B13) とか =SUMPRODUCT((LEN(B1:B13)>0)*1) とか =SUMPRODUCT((B1:B13<>"")*1) として取得しましたが、本来のCOUNTIFでは取得できないのでしょうか?

  • 文字列AかBを含むセル数をSUMPRODUCT関数で求める場合

    文字列AかBを含むセル数をSUMPRODUCT関数で求める場合 エクセル2000です。 A1:A10のセル範囲だとして =SUMPRODUCT(ISNUMBER(FIND({"A","B"},A1:A10))*1) とすると、同一セルにA、Bの両方があった場合、重複してカウントされてしまいます。 重複を除外するために、 =SUMPRODUCT(ISNUMBER(FIND({"A","B"},A1:A10))*1)-SUMPRODUCT(ISNUMBER(FIND("A",A1:A10))*ISNUMBER(FIND("B",A1:A10))) と、重複してカウントされた数から両方が存在するセルの数を減じて求めましたが、以下のようなより簡素な式でも求められことがわかりました。 =SUMPRODUCT((ISNUMBER(FIND("A",A1:A10))+ISNUMBER(FIND("B",A1:A10))>=1)*1) この式でなぜAB両方があるセルが重複カウントされないのかどうもわかりません。 ご教示いただければ幸いです。 なお、SUMPRODUCTではなく =SUM(COUNTIF(A1:A10,{"*A*","*B*"}))-SUM(COUNTIF(A1:A10,{"*A*B*","*B*A*"})) でもできることは存じておりますが、今回はSUMPRODUCTの疑問として質問いたしました。

  • エクセルのCOUNTIFで

    エクセルのカウント方法について教えてください。 A1~A100のセルに式が入っていて、条件により答えが表示される場合とされない場合(="")があります。 答えは文字列です。 A1~A100のなかに答えが表示されているセルの数を求めるにはどういう式にすればいいのでしょうか? COUNTA(A1:A100)では100となってしまいますので、COUNTIFだとは思うのですが・・・・。

その他の回答 (3)

  • 回答No.3

数式が入っているということは空白ではありません。 何も無い用に見えているだけで文字は入っています。その為文字を含めてカウントするcountaなどではカウントされてしまいます。 出来ない式の訂正で申し訳ないですが、 >=COUNTIF($A$1:$A$10,"<>""") こちらではなく =COUNTIF(A1:A10, "<>") =COUNTIF(A1:A10, "<>"&"") の方が数式としては正しいのではないでしょうか。 数式の計算結果が0であれば対応が簡単ですが、文字となると =COUNTA(A1:A10)-COUNTIF(A1:A10,"") という方法などでしょうか。 計算結果を0にすれば簡単ですのでA1~A10の式をつついて =IF(B1&C1="",0,(B1&C1)) などとしておいて値が無ければ数字の「0」を返すようにしてください。 *注意:0であって"0"ではありません。"0"にしたらどうなるかご確認ください。 そしてカウントしたい場所で =COUNTIF(A1:A10,"<>0") という形にしてください こうすれば空白を返すのでは無く数字の「0」を返すので「0」以外をカウントしてくれます。”0”は文字の0となります。 数字の0の非表示はオプションから出来ます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

quindecillionさん、訂正ありがとうございます。

  • 回答No.2

>セル範囲A1:A10で空白に表示されたセルの数は  =COUNTBLANK($A$1:$A$10) で求められます。 ★空白でないセルの数を求める場合  総数から空白のセル数を引けば  =10-COUNTBLANK($A$1:$A$10)  または   =COUNTA($A$1:$A$10)ーCOUNTBLANK($A$1:$A$10) のめりこんでいますね、こういう時はお茶にして一息入れて下さい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

chayamatiさん、おはようございます。 >総数から空白のセル数を引けば はい、その方法なら存じています。 ありがとうございました。

  • 回答No.1
  • msMike
  • ベストアンサー率20% (290/1424)

=COUNTA(A1:A10)-COUNTIF(A1:A10,"")

共感・感謝の気持ちを伝えよう!

質問者からのお礼

msMikeさん、おはようございます。 COUNTIF(A1:A10,"")はCOUNTBLANK($A$1:$A$10)と同じことですね。 ありがとうございました。

関連するQ&A

  • エクセル/指定範囲のセル数を返すワークシート関数は?

    エクセル2000です。 たとえば、A1:A100の範囲に、空白か否かを問わずセルがいくつあるかを返すワークシート関数はないでしょうか? 空白以外の数+空白の数で求められるかと思いましたが、 =COUNTA(A1:A100)+COUNTBLANK(A1:A100) では、計算の結果 ="" になっているセルが両方にカウントされてだめです。 VBAなら Range("A1:A100").Count で一発なのですが・・・・。

  • 空白セルを計算しないようにしたい

    エクセルで例えばB20のセルに「=COUNTIF(A1:A20,(A20))」と式を入力しました。 A20に入力した言葉が、A列に何回出てきたか、その数をB20に表示する式ですが、 A20が空白の場合もカウントしてしまいます。 A20が空白の場合はカウントしない(または表示しない・見えない)ようにするには どういう式を組み込めばよろしいのでしょうか。

  • エクセルの数式で、COUNTIF(A1:A100,">""") 

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=2224824 の関連質問です。 表A1:A100にある、各セル内の数式で求められた計算結果が文字列の場合、その数を調べるには、 =COUNTIF(A1:A100,">""") で、各セルの計算式の答えが "" 以外の文字列の数を返してくれるようです。(数値や空白セルはカウントされません。) 非常に便利なのですが、ちょっと腑に落ちないのは、  >""  って、""より大きいということですよね? しかし文字列は数字とちがい大小はないのではないでしょうか? もう一点疑問です。 ためしに、=COUNTIF(A1:A100,">=""")  としてみました。 今度は、  >=""  ですから、""も含むということになるはずですよね? ところが答えが  ""  となるものをカウントしません。 不思議でたまりません。 よろしくお願いします。

  • エクセル COUNTIFで複数条件を表現する方法

    はじめまして。 A1~A10に国名があるとします。  | A --|--------- 1| アメリカ 2| ドイツ 3| カナダ 4| イギリス※ 5| フランス 6| (略) 11|=COUNTIF(A1:A10,{"*","<>*※"}) この範囲の中で、'※'記号の無い国をカウントしたいのですが、 範囲中に、空白もある可能があり、 >COUNTIF(A1:A10,"<>*※") とすると、空白もカウントされてしまいました。 なので >COUNTIF(A1:A10,{"*","<>*※"}) としたのですが、期待する数字が返ってきません。 下の場合、「4」と言う数字が欲しいのですが どなたかご教授願います。

  • EXCEL 数式が入った空白セルを数える

    毎度お世話になっています。 質問の内容ですが、例えば下記のようなシートがあるとします。 セルB1、セルC1、セルD1:手入力セル セルA1:数式「=IF(B1="","",B1+C1)」 セルA2:文字列 セルA3:数式「=IF(D1="","",D1*0.1)」 セルA4:文字列 セルA5:A1+A3の計算結果を表示 (※なお、セルA2、A4は数値が入らない) というような場合において、 ●セルB1、C1、D1になにも入力されていない場合、セルA5が空白となる。 ●セルB1、C1にのみ数値が入力されている場合、セルA5の計算結果がセルA1の値のみ。 ●セルD1にのみ数値が入力されている場合も上記と同様に計算結果が表示される。 以上の条件を満たす数式をセルA5に入力したいのですが、 COUNTBLANKは数式が入っている場合には使えず、COUNTAの場合だとセルA1、A3のどちらにも数値が入った場合に表示される、といった数式になります。 IFをいくつも使えば可能とは思いますが、もう少し単純に数式を作れたらと思い質問をさせて頂きました。 よろしければ御回答宜しくお願い致します。 (内容を訂正したため、いったん質問を削除しました。もし御回答中の方が居ましたら申し訳ありませんでした。)

  • COUNTBLANK関数について

    A1からA16まで数式が入っています。 ただし数式の結果によっては、空欄になっているセルがあります。 COUNTA関数を使ってA1からA16までのデーターが入っている個数を調べた場合、空白のセルにも数式が入っているためカウントされますよね。 では、COUNTBLANK関数を使ってA1からA16までの空白の個数を調べた場合どうなりますか? 実際には空白のセルにも式が入っているのだから、0にならないとおかしくないですか? 実際の結果は空白の個数をちゃんとカウントできます。 なぜでしょうか? 矛盾していると思うのですが・・・

  • ワークシート関数で複数のセル範囲の空白を調べたい

    ワークシート関数でセル範囲、B1:B5,D1:D4,F1:F3,H1:J1 が空白でない場合にTRUEを返すため =COUNTA(B1:B5,D1:D4,F1:F3,H1:J1)=15 という数式を書きました。ただ、これはセルの個数が15であることがわかっていなければなりません。ならば、COUNTBLANKで空白セル数を求め、それが0であればよいと思うのですが、なぜか =COUNTBLANK(B1:B5,D1:D4,F1:F3,H1:J1) という複数のセル範囲指定は、COUNTBLANKでは使えないようです。 やむをえず、セル範囲を分けて =SUM(COUNTBLANK(B1:B5),COUNTBLANK(D1:D4),COUNTBLANK(F1:F3),COUNTBLANK(H1:J1))=0 として対応しましたが、これをもっと簡単にやる方法はないでしょうか?

  • エクセル関数で600番台の数取得

    セル範囲A1:A20に数式で数値が表示されています。 数式で=""が表示されるため、空白に見えるセルもあります。 この範囲から600から699までの数値がいくつあるか取得しようと思います。 =COUNTIF(A1:A20,">=600")-COUNTIF(A1:A20,">=700") 以上の関数でできるとは思いますが、ほかの関数があればご教示ください。 なお、オートフィルターは使用しないものとします。 エクセル2010です。

  • Excel 空白セルを詰めて表示する方法

    <図1>     A     B 1   あいう 2         えお 3   かきく 4         けこ 5   さしす <図2>各行の空白セルを詰めて表示させる     A     B     10  あいう  けこ 11  かきく 12  さしす 13  えお 以前の投稿で以下のようなものはあったのですが、 上記のようにしたい場合、どの様な関数を組めばいいのでしょうか? ------以下,参考にした例------ <図1>     A     B 1   あいう 2         えお 3   かきく 4         けこ 5   さしす <図2>各行の空白セルを詰めて表示させる     A     B     10  あいう   えお 11  かきく   けこ 12  さしす 13 14 【関数】 A10: =IF(ROW(A1)>COUNTA(A$1:A$5),"",INDEX(A$1:A$5,SMALL(IF(A$1:A$5<>"",ROW($A$1:$A$5),""),ROW(A1))))

  • Excel/指定のセル間の空白をカウント

    Excelの関数についての質問です。 ある範囲内で”指定の値のセル(1)”と”指定の値のセル(2)”を検索しその間の”空白セル”の数をカウントしたいんですが、方法はありますでしょうか。 例えば、「範囲:A1&#65374;Z1」、「指定値を含むセル:C1((1))、W1((2))」の間で空白のセルのカウントをする場合です。※範囲の間のセルには空白セルと文字入力されたセルがある前提です。 以下の様にMATCH関数を使用すれば、全てのセルの数をカウントできるのですが、それでは、空白 のセルだけという条件に当てはまらず、目的を達成出来ません。 ■MATCH((2),A1:Z1,0)-MATCH((1),A1:Z1,0)=20 何か良い方法はありますでしょうか?