[[20210421220433]] 『「COUNTIFS関数の設定について」[右近] について』(右近) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「COUNTIFS関数の設定について」[右近] について』(右近)

投稿
[[20210409162749]] 『COUNTIFS関数の設定について』(右近) 
について...

お尋ねいたします。
以前、ここでご教授いただいたものですが、V6を基準日にしてカウントさせたいというものです。

V8=IF(V$6="","",SUMPRODUCT(($J$8:$J$57<=V$6)*($J$8:$J$57<>"")*(($K$8:$K$57>=V$6)+($K$8:$K$57=""))*($I$8:$I$57=LEFT($U8,1))))

V8〜V10に上記関数を設定して、以下のような結果としたいのですが、どうしても停止日をカウントしてくれず、実際にはV8の結果は「3」となってしまいます。
停止日を1日ずらして、2021/4/18にするとカウントしてくれます。
J列とV6の日付形式は同じにしています。
どのような修正が必要か、ご教授いただければ幸いです。
どうぞよろしくお願いいたします。

   I      J         K          U           V
6  区分   開始日    停止日                 2021/4/19
7
8  ?@     2021/4/1             ?@家族あり  2       
9  ?A     2021/4/1             ?A家族なし  2
10 ?@     2021/4/1             ?B不明    1
11 ?B     2021/4/8   
12 ?@     2021/4/1  2021/4/19
13 ?A     2021/4/5
・
・
・
57

< 使用 Excel:Excel2019、使用 OS:Windows10 >


何が論点か不明です。
8,10,12行目のデータが対象として適格ですから、
個数は3で問題ないんじゃないですか?
問題点を説明してください。

(γ) 2021/04/21(水) 22:51


基準日と停止日が同じ日付なので、マイナス1としたいのですがマイナス1してくれない、というのが問題点です。
(右近) 2021/04/21(水) 22:56

同日は除くなら、
$K$8:$K$57>=V$6
じゃなく
$K$8:$K$57>V$6
とするべきでは?

(γ) 2021/04/21(水) 23:10


同日は除くなら、 いいえ、同日を含めたいのです。数式的にはそのようになっている(>=)と思うのですが、結果として同日を含めないものになっているため、困っています。

(右近) 2021/04/22(木) 07:11


カウントしたい条件を、もう一度整理してみてはいかがですか。

そして、数式がカウントしている条件と合っているか確認しましょう。

(余計なお世話) 2021/04/22(木) 08:10


>停止日を1日ずらして、2021/4/18にするとカウントしてくれます。
K12セルを2021/4/18にしたら、ということですよね。
「カウントしてくれます」とはどういう意味ですか?

>基準日と停止日が同じ日付なので、
>マイナス1としたいのですがマイナス1してくれない、

「マイナス1する」とか「しない」とか、意味が分かりません。
V列の結果数値は、「条件にあったものの個数をカウントしている」だけでしょ?
全般におっしゃっていることの意味がわかりません。
(γ) 2021/04/22(木) 08:30


もろかぶりしましたが投稿しておきます。

既に指摘されてますが↓矛盾してますよね。
>基準日と停止日が同じ日付なので、マイナス1としたい
>同日を含めたい

基準日が2021/4/19のとき、停止日が2021/4/19のデータは、対象とするのか否かということだと思いますが、どちらなのですか?

あと、この掲示板では丸つき数字などの環境依存文字は文字化けするので使わないほうがよいですよ。
さらに、半角の「>」で書き始めてしまうと、編集記号とみなされてしまうので、全角の「>」を使うようにされるとよいとおもいます。

(もこな2 ) 2021/04/22(木) 08:55


余計なお世話さん、ありがとうございます。

γさんへの回答
>K12セルを2021/4/18にしたら、ということですよね。
「カウントしてくれます」とはどういう意味ですか?
停止日に入力されたら、基準日によって対象の可否を判断するということです。

>V列の結果数値は、「条件にあったものの個数をカウントしている」だけでしょ?
基準日が2021/4/19のとき、停止日が2021/4/19のデータは、対象としたい、ということです。
全般的に意味不明な質問となっており、申し訳ありません。

もこな2さんへの回答
>基準日が2021/4/19のとき、停止日が2021/4/19のデータは、対象とするのか否かということだと思いますが、どちらなのですか?
対象とするです。

>あと、この掲示板では丸つき数字などの環境依存文字は文字化けするので使わないほうがよいですよ。さらに、半角の「>」で書き始めてしまうと、編集記号とみなされてしまうので、全角の「>」を使うようにされるとよいとおもいます。
アドバイスありがとうございます。
(右近) 2021/04/22(木) 12:34


ますますわからなくなりましたが、もしかして、基準日が

 =NOW()

とかになっているとかでしょうか。
(余計なお世話) 2021/04/22(木) 12:54


えっと・・・・条件を並べるとこうですよね?
 条件1:J列が "2021/4/19"以前であること
 条件2:J列が 空白でないこと
 条件3:K列が "2021/4/19"以降(2021/4/19を含む) or 空白であること
 条件4:U列の1文字目が I列と一致すること

γさんから指摘があったように、8,10,12行目が条件を満たしているから【3】となって正しいのではないですか?
どのような理屈で【2】じゃないとだめなのかを説明されないと、話が進みませんよ。

(もこな2 ) 2021/04/22(木) 12:58


>ますますわからなくなりましたが、もしかして、基準日が=NOW()とかになっているとかでしょうか。
いいえ、基準日は手入力です。

>えっと・・・・条件を並べるとこうですよね?

 条件1:J列が "2021/4/19"以前であること→YES
 条件2:J列が 空白でないこと→8〜57行目まで50行設定していますので、空白行はあります。ただし、途中が抜けたりはありません。
 条件3:K列が "2021/4/19"以降(2021/4/19を含む) or 空白であること→YES
 条件4:U列の1文字目が I列と一致すること→YES
γさんから指摘があったように、8,10,12行目が条件を満たしているから【3】となって正しいのではないですか?
どのような理屈で【2】じゃないとだめなのかを説明されないと、話が進みませんよ。
→V8には、基準日によって対象の可否を判断しています。区分aの開始日Jの件数−停止日の件数を求めています。従って、V8=2ということです。

もこな2さんからご指摘いただいたとおり、I及びU列が文字化けしていたため、以下のとおり修正しました。

   I      J         K          U          V
6  区分   開始日    停止日                2021/4/19
7
8  a      2021/4/1             a家族あり  2       
9  b      2021/4/1             b家族なし  2
10 a      2021/4/1             c不明    1
11 b      2021/4/8   
12 a      2021/4/1  2021/4/19
13 c      2021/4/5
・
・
・
57
(右近) 2021/04/22(木) 14:42

>いいえ、基準日は手入力です。
 ありがとうございます。仮になっていたとしても、影響しませんね(思い違いでした)。

やはり、条件通りなら3になると思うのですが、

>区分aの開始日Jの件数−停止日の件数

について、もう少し説明願いませんか?
(余計なお世話) 2021/04/22(木) 14:57


余計なお世話さん(余計なお世話ではありません。)、ありがとうございます。
>やはり、条件通りなら3になると思うのですが、「区分aの開始日Jの件数−停止日の件数」について、もう少し説明願いませんか?
ご質問ありがとうございます。
まずもって、私の説明が言葉足りず申し訳ありません。再三指摘されているにも関わらず。自分なりにはお伝えしようとしてはいるのですが。すみません。
「区分aの開始日Jの件数−停止日の件数」について、
I列=J列(<=基準日)を満たしているのが 3件
I列=J列(<=基準日)−U列(<=基準日)を満たして 1件
3件−1件=2件
これが私が求めたい結果です。
(右近) 2021/04/22(木) 15:09

> 条件1:J列が "2021/4/19"以前であること→YES
 > 条件2:J列が 空白でないこと→8〜57行目まで50行設定していますので、空白行はあります。ただし、途中が抜けたりはありません。
 > 条件3:K列が "2021/4/19"以降(2021/4/19を含む) or 空白であること→YES
 > 条件4:U列の1文字目が I列と一致すること→YES

いやいや、そういうことじゃないです。1行ずつ判定結果を見ていかないと....とおもってよくよくみると、なるほど2件が正しいような気がしてきました。

【条件】

 条件1:J列が "2021/4/19"以前であること
 条件2:J列が 空白でないこと
 条件3:K列が "2021/4/19"以降(2021/4/19を含む) or 空白であること
 条件4:U列の1文字目が I列と一致すること

【判定結果】

         __条件1__   __条件2__   __条件3__   __条件4__   総合判定
  8行目    True        True        True        True        True    ←ここ
  9行目    True        True        True        True        True    ←ここ
 10行目    True        True        True        False       False
 11行目    True        True        True        False       False
 12行目    True        True        True        False       False
 13行目    True        True        True        False       False

うーん。なんででしょう。
私のコメントは保留でお願いします。

(もこな2 ) 2021/04/22(木) 15:39


12行目の条件4は?
( ー) 2021/04/22(木) 15:54

 > 12行目    True        True        True        False       False
                          ↑
      I12セルは「a」ですから、「a家族あり」はTRUEのハズです。

 >基準日と停止日が同じ日付なので、マイナス1としたいのですがマイナス1してくれない、というのが問題点です。

 それって結局、同じ日付の場合はカウントしないのと同じでしょ。
 初めから、γさんが指摘した「$K$8:$K$57>=V$6 じゃなく$K$8:$K$57>V$6 とするべきでは?」と言う結論に
 なると思うのですが、何故ダメなんですか?

(半平太) 2021/04/22(木) 16:50


4月19日現在 a家族あり 2件
と表示させたいです。
4月19日付で停止になっている方を、4月19日現在の数に含めない。
としたいです。
やはり、私の考え方はおかしいでしょうか。
(右近) 2021/04/22(木) 19:12

>4月19日付で停止になっている方を、4月19日現在の数に含めない。
これまでの説明とは異なっていますが、それなら2件です。

対応としては、2021/04/21(水) 23:10の γさんのご指摘通りとなります。

(余計なお世話) 2021/04/22(木) 19:22


いえ、異なったことを言ってるつもりはありません。
最初から、こういう計算をさせたい、には何ら変わりません。
しかし、表現が違っていると言われたら、申し訳ありませんと言うしかありません…
(右近) 2021/04/22(木) 19:39

〉対象とするです
カウントの対象とする、ではなかったのですね
(zaq) 2021/04/22(木) 19:59


 γさんのこれでダメなんですか?ちゃんと反応してくださいよ。
      ↓
 V8セル =IF(V$6="","",SUMPRODUCT(($J$8:$J$57<=V$6)*($J$8:$J$57<>"")*(($K$8:$K$57>V$6)+($K$8:$K$57=""))*($I$8:$I$57=LEFT($U8,1))))

 ダメならどんなケースでダメになるのか具体的なデータを提示してください。

(半平太) 2021/04/22(木) 20:15


2021/04/21(水) 23:10、γさんよりご指摘いただいておりました、
$K$8:$K$57>V$6とするべきでは?
を実際に設定してみました。

私の要望でした、「4月19日現在 a家族あり 2件 と表示させたいです。
4月19日付で停止になっている方を、4月19日現在の数に含めない。
としたいです。」
どおりの結果となりました。

私の思い込みと言いますか、その時点で実際に設定して確認すべきことを怠ったため、皆さんにご迷惑をおかけし、申し訳ありませんでした。
ありがとうございました。
(右近) 2021/04/22(木) 20:57


しばらく見ない間に話が進んでましたが、U10以降はブランクなのでFalseが続くなんておもってましたけど、思いっきり勘違いしてました。
 誤 条件4:U列の1文字目が I列と一致すること
 正 条件4:I列が U8セルの1文字目と一致すること

であって、行ごとの評価の段階でU列の行が変わるわけではないですね。失礼しました。

>4月19日付で停止になっている方を、4月19日現在の数に含めない。
それだと

 条件1:J列が "2021/4/19"以前であること
 条件2:J列が 空白でないこと
 条件3:K列が "2021/4/19"【より後(2021/4/19を含まない)】 or 空白であること ★ここが変わる
 条件4:I列が U8セルの1文字目と一致すること

ですよね。

(もこな2 ) 2021/04/22(木) 21:15


もこな2さん、失礼したのは私です。
本当にすみませんでした。
皆さん、ありがとうございました。
(右近) 2021/04/22(木) 21:24

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.