• ベストアンサー

excellの関数について:

excellの関数について: 毎日変化する範囲内の空欄数を数えたいのです。 1行目は毎日の日付、2行目空欄もしくは文字列、2行目の空欄数を数えたい。1行目は毎日増えていきますのでカウントする範囲も当然増えます。COUNTBLANK、IF関数、TODAYとかを使ってみたのですが、どうもうまくいきません。教えて下さい。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 回答番号:ANo.3です。  申し訳御座いません、自分で >今仮に、日付(←シリアル値)を入力するのがワークシートの1行目で、文字列を入力するのがワークシートの2行目であるとした場合、 と書いておきながら、数式では、動作確認のために試しに作成した際の行(16行目と17行目)に対応する形で書いておりました。  ですから、 =SUMPRODUCT(($16:$16>0)*($17:$17="")) は間違いで、正しくは =SUMPRODUCT(($1:$1>0)*($2:$2="")) となります。

asakomasako
質問者

お礼

意味するところはわかりましたので、前回の回答でOKでした。ありがとうございます。回答3のお礼の追加にも書いたのですが、列の場合(例えば、SUMPRODUCT(($A:$A>0)*($B:$B="")))にうまくいきません。windows bistaではOKだったのですが・・・どうして??

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 今仮に、日付(←シリアル値)を入力するのがワークシートの1行目で、文字列を入力するのがワークシートの2行目であるとした場合、空欄をカウントするセルに、次の数式を入力すると良いと思います。 =SUMPRODUCT(($16:$16>0)*($17:$17=""))

asakomasako
質問者

お礼

すごい!!できちゃった。ありがとうございます。でもSUMPRODUCT関数は(,,,・・・)と行くものと思ってましたが・・(*)も使うんですね。感謝します。

asakomasako
質問者

補足

自宅のPC(windows bista:excell 2003)では問題なくできました。 行列の入替 をして、 =SUMPRODUCT(($K:$K>0)*($L:$L=""))などとしても、OKでした。 仕事先のPC(windowsXP、windows2000:excell book)では =SUMPRODUCT(($16:$16>0)*($17:$17=""))は問題ないのですが、 列の時は =SUMPRODUCT(($K:$K>0)*($L:$L=""))では、$K:$K>0にerrorメッセージがでてしまいます。困った!!

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

回答者1ですが解答欄のレイアウトが崩れていますので読み取っていただけたらと思います。

asakomasako
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

月日  データ      月日                   入力数 40238 tou    >1                       =COUNTA(A2:A50) 40239   空白でないセル                空白のセル 40240 kai   =DCOUNTA(A1:B50,"データ",D1:D2)   =E2-D4 40241 40242 40243 こんな感じです。 まず、DCOUNTA 関数を使って空白ではないセルを数えます。 次は、普通に日付データーが入っているセルの数を数えます。差し引きすると空白のセル数が求められます。なお、日付の部分は、数式扱いで表示のため日付連番として表示されていますが、実際は日付です。 DCOUNTA 関数の使い方などは http://excel.onushi.com/function/dcounta.htm ほかを参考にしてください。条件をあらかじめ書いているところを利用するというちょっと他の関数とは異なる使い方です。

asakomasako
質問者

お礼

さっそくの回答ありがとうございます。まだ、私の中ではすっきりとはわからないのですが、考えてみます。

asakomasako
質問者

補足

この方法でも問題解決しました。ただ、「>1」の意味するところがわかりませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの関数、連続する数値の入力について

    エクセルの関数の連続する数値について質問があります たとえばD10にA10:C10がすべて空欄の時は"○"、それ以外は"×" とすると =IF(COUNTBLANK(A$10:C10)=3,"○","×")で 続けてそれぞれ、 D11にA10:C11がすべて空欄の時は"○"、それ以外は"×" D12にA10:C12がすべて空欄の時は"○"、それ以外は"×" D13にA10:C12がすべて空欄の時は"○"、それ以外は"×" と、続けて計算させるためにフィルハンドルを使ってD10から下にドラッグしたのですが =IF(COUNTBLANK(A$10:C11)=3,"○","×") =IF(COUNTBLANK(A$10:C12)=3,"○","×") =IF(COUNTBLANK(A$10:C13)=3,"○","×") となってしまい、思うようにいきません。 最終的には =IF(COUNTBLANK(A$10:C10)=3,"○","×") =IF(COUNTBLANK(A$10:C11)=6,"○","×") =IF(COUNTBLANK(A$10:C12)=9,"○","×") =IF(COUNTBLANK(A$10:C13)=12,"○","×") と空欄の数を3ずつ加算させるにはどのようにしたらいいのでしょうか? よろしくお願いいたします。

  • EXCELのIF関数で

     こんにちは。教えて下さい  ある範囲(C4:L4とします)の中にある空白の数によって、一定の数を返すような数式を作りたいのです。空白の数が、0で2、1で3、2で4、3で5、4で6、5で8、6で11、7で15、8で20、9で30、10で0という具合で、規則性はありません。IF関数とCOUNTBLANK関数を使って、次のような入れ子構造の数式を作りました。  =IF(COUNTBLANK(C4:L4)=0,2,IF(COUNTBLANK(C4:L4)=1,3,IF(COUNTBLANK(C4:L4)=2,4,IF(COUNTBLANK(C4:L4)・・・中略・・・IF(COUNTBLANK(C4:L4)=9,30,0))))))))))  最後の閉じ括弧の数は正確ではありませんが(汗)、実際にはきちんと合わせました。  ところがエラーが出てしまうのです。入れ子の階層数に制限があるのでしょうか? それとも他に原因が?  そもそもこんな長い数式ではなく、もっとうまい方法があるような気もするのですが・・・。  よろしくお願いいたします。

  • エクセルの関数を教えてください

    先ほど質問したのですが必要な情報が足りなかったようなので再度質問させてください。 エクセルで範囲内で値もしくは文字列が入っているセルの数を数えたいのですが値、文字列が同じである時はカウントしないようにしたいのですがどのような関数を使えばいいか教えてください。 範囲はC~AXまでで4行目から1行ずつ調べて結果を出していきたいです。 前回の質問でいただいた回答を数値を置き換えて試したのですがうまくいきませんでした。 回答よろしくお願いします。

  • Excelの関数

    Excelで、範囲指定した列に文字"○"があり、なおかつ文字"○"があった行の範囲指定した別の列に文字"△"があるセルの個数カウントをしたいのですが、その場合の関数がわかりません。 わかりづらい質問で申し訳ございませんが教えてください。 よろしくお願いいたします。

  • エクセルの関数を教えてください

    エクセルで範囲内で値もしくは文字列が入っているセルの数を数えたいのですが同じ値、文字列が同じである時はカウントしないようにしたいのですがどのような関数を使えばいいか教えてください。

  • Excel関数で範囲指定し重複以外の値のカウント

    Excelの関数の使い方で教えていただけないかと思い、投稿しました。 お手数ですが、よろしくお願いします。 ある列の中で、限られた値の行を範囲として、別の列の値を調べて、カウントしたいと思っています。 カウントする値は、重複を除いた値の個数をカウントしたいと思います。 例えば、A列の1~100行までの範囲の中で、A列の101行目に入っている値である文字列の”鈴木”と同じ値がある行のB列の値をカウントしたいと思います。 そのB列のカウントを行う場合、重複する値があれば、1とカウントします。 以上の関数をB列の101行目に記載するとすれば、どのような関数になるのか教えていただければ幸いです。よろしくお願いいたします。

  • Excell2002でのデータ処理

    Excell2002でのデータ処理に関数の使用を考えてます。 例えば、以下のようなデータがあります。 A列, B列 ,C列 1 , 10 ,  2 , 12 , 3 ,  8 , 10 5 , 15 , 8 8 , 20 , 9 , 18 , 10 , 16 , 20 ・ ・ (列がきれいに表示されてませんが!) A列は通し番号でありますが、中にはA列B列ともに同じ行で欠測値があります。 要はC列に「A列ー2の行」のB列の値を入れたいのです(上記C列参照)。 勿論B列に欠測値があるので該当する値がなければ「ブランク」とします。 ⇒C列にどのような関数を使えば良いのでしょうか? ⇒IF関数かとは思いますが・・・? ご教示ください。

  • [excell]片方を優先させて1列を作る

    住所録で携帯番号と家電話番号の2列のリストがあります。 それぞれの列に空欄があるのですが、 【携帯番号を優先して、それが空欄なら家電話番号を入れる】 という列を作りたいです。 どのような関数を使えばよいでしょうか? 使っているexcellはwindowsの2007です。

  • ExcelのCountif関数の条件に関数を使いたい

    Excel2002のCountif関数の条件に関数を使用することは可能でしょうか? 今日と同じ日付のセルの数をカウントしたく、以下のように記述したのですが、カウントされませんでした。 =COUNTIF(H1:H28,"=today()") 条件を日付で記述すればカウントされるので、セルの値は正しく入力されています。 よろしくお願いします。

  • この場合の関数を教えてください。IF関数とCOUNTIF関数?

      A      B    C  D  F  G 1 12300 2 9800 3 14500 上記の様な表($a$1:$d$3) がある時、 B1 ◎      D1 △   F1◎     C2◎         F2△ B3△      D3◎ F1 に◎を入れた時に、 もし、A列の値が10000より大きいなら(注)、範囲$a$1:$d$3の◎の数を数え結果をG1に2と表示させたいです。(F2に△と入れたら2と表示) (注) 1行目は、12300(A1)なので1行目はカウントの範囲。 2行目は、9800で10000より小さいのでカウントの範囲から外れる。 3行目は、14500はカウントの範囲。 2行目の◎(C2)はカウントされないようにするには、 G1にどのようなCOUNTIFの関数を入れればよいのでしょうか? いつも教えているので、考えたのですが? =IF(A1>10000,COUNTIF($B$1:$D$3,F1),"0")では、間違いとは気づいたのですが? (A1>10000が間違い)どの様にして良いか解りません。 どなたか教えてください。宜しくお願いいたします。 (見にくい表で申し訳ありません)

質問内容の要約
このQ&Aのポイント
  • テスト
  • 製品名を記入してください。どのようなことでお困りでしょうか? 相談したいこと、トラブルに至った経緯、試したこと、エラーなどを教えてください。 お使いの環境について教えてください。パソコンもしくはスマートフォンのOSは何ですか? どのように接続されていますか? 関連するソフト・アプリがあれば教えてください。 電話回線の種類は何ですか?
  • 製品名を記入してください。相談内容やトラブルの経緯、試したこと、エラー情報などを教えてください。お使いの環境についても教えてください。パソコンもしくはスマートフォンのOSは何ですか?接続方法や関連するソフト・アプリ、電話回線の種類についてもお知らせください。
回答を見る