- ベストアンサー
SUMPRODUCT 空白セルを数えない
AR列に初回来店日(AQ列)と2回目来店日(AT列)の差分の日数を入れている表があります。 格顧客の受注番号順に並べているので、当然の2回目来店日が空白になるセルもあります。 最終的に2回目までの来店日数が、31日以下、32日以上62日以下・・・ を表示させたいのですが、空白セルもカウントしてしまいます。 過去の記事より以下の数式を利用していますが、どこを変更すればよろしいですか? 1ヶ月未満算出: =SUMPRODUCT((AR2:AR86>=0)*(AR2:AR86<=31)) 1ヶ月以上2ヶ月未満算出:=SUMPRODUCT((AR2:AR86>=32)*(AR2:AR86<=62)) <来店日数算出> AQ AR AS AT 2007/10/22 0 0 2007/10/22 2007/10/23 1 1 2007/10/24 2007/10/25 2007/10/25 ※AS列は、日数を出すための数式が入っており、それを値に変換したのがAR列です。 長々と申し訳ありません。 基本的な質問だと思いますが、よろしくお願いします。 エクセル2000です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>空白セルもカウントしてしまいます。 どの列ですか。第2回来店日列ですか。 >最終的に2回目までの来店日数が、31日以下、32日以上62日以下・・・ を表示させたいのですが、空白セルもカウントしてしまいます。 第2回来店日列が空白の行を除いて、再来店日数が31日以下の、「件数」を数えたいのか。 であれば、その条件(第2回来店日列が空白の)を条件に入れれが、良いだけではないの。何で回答が出ないのかな、一部の原因は質問がごたごたした印象があると思うよ。 ーーー しかしやってみると難しいことがわかった 例データA1:B10 2007/10/1 2007/10/9 2007/10/5 2007/11/3 2007/10/7 2007/10/11 2007/12/5 2007/10/15 2007/10/29 2007/10/16 2007/10/22 2007/11/23 2007/10/25 2007/10/30 2007/10/31 2007/11/25 2007/11/1 2007/11/28 件数を求めるセルに 15日を越えるという条件で =SUM(IF($B$1:$B$10="","",IF(DATEDIF($A$1:$A10,$B$1:$B$10,"D")>15,1,0))) と入れて、Shift+Ctrl+Enterの3つのキーを同時押し。 結果 5 ーーー 配列数式で出来るものは、SUMPRODUCT関数に(式は変わるが)置き換えられることが多い。 空白の場合DateDif関数がエラーになるが回避法が難しい。 発想を単純化して =SUMPRODUCT(((B1:B10-A1:A10)>15)*1) 結果 5 B列ブランクは引き算で3万台のマイナスになってくれるので15以上の場合は対象にならなかった。 以下の場合は1より大を入れないといけないだろう。 =SUMPRODUCT(((B1:B10-A1:A10)<15)*((B1:B10-A1:A10)>1)*1) 結果(15日未満、B列空白は除く) 3
その他の回答 (1)
- onntao
- ベストアンサー率32% (108/332)
AR列に、どのような数式が入っているか不明なので IF関数あたりでAS列にデータが無いときは "", 処理と仮定し =SUMPRODUCT((AR2:AR86<>"")*(AR2:AR86>=0)*(AR2:AR86<=31)) とか 尚サンプルの表では A B C D 1 2007/10/22 2 0 0 2007/10/22 3 2007/10/23 4 1 1 2007/10/24 5 2007/10/25 6 2007/10/25 などとしていただけると、可読性が高く回答しやすいです また >AS列は、日数を出すための数式が入っており、それを値に変換したのがAR列です。 なども、入力してある数式が提示されていると、回答の数式もより適切なものになる可能性が高いと思います
お礼
ありがとうございます。 参考にさせていただきます。
お礼
ありがとうございます。 数式を利用させていただきます。 またの機会がありましたらよろしくお願いします。