[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『重複を省き条件により日数をカウントしたい』(リンゴ)
質問させていただきます。
以下のような表があります。
Sheet1のA2=西暦、B2=月、C2=日数カウント結果を表しています。
すると、Sheet2から月内の日数をカウントさせたいのです。
その際の条件は、以下のとおりです。
・同じ日付は「1」としてカウント
・E列が「1」の場合をカウント(「0」はカウントしない)
よろしくお願いいたします。
Sheet1
___A_______B______C
1__2022____9______2
Sheet2
__A_____________B_______C________D________E
1__2022/9/1______2022____9________253______1
2__2022/9/1______2022____9________255______0
3__2022/9/1______2022____9________254______1
4__2022/9/2______2022____9________253______0
5__2022/9/3______2022____9________255______0
6__2022/9/3______2022____9________254______1
:
< 使用 Excel:Excel2019、使用 OS:Windows10 >
・Sheet1 の条件は説明通り 2行目 ・Sheet2 のデータ範囲は 2〜100行目
Sheet1 C2 =COUNT(0/FREQUENCY(IF((Sheet2!B2:B100=A2)*(Sheet2!C2:C100=B2)*(Sheet2!E2:E100=1),Sheet2!A2:A100),Sheet2!A2:A100)) Ctrl+Shift+Enter で確定 ← 配列数式
■作業列を使ってもいいのなら・・・ Sheet2のF列 F2 =IF(AND(B2=Sheet1!$A$2,C2=Sheet1!$B$2,E2=1),A2,"") 下コピー
Sheet1 C2 =COUNT(0/FREQUENCY(Sheet2!F2:F100,Sheet2!F2:F100)) 普通に Enter だけで確定
以上 (笑) 2022/09/07(水) 23:09
=FREQUENCY(OFFSET(Sheet2!$A$1,0,0,COUNT(Sheet2!$A:$A),1)*OFFSET(Sheet2!$A$1,0,4,COUNT(Sheet2!$A:$A),1),DATE($A$1,$B$1,ROW(OFFSET($A$1,0,0,DAY(EOMONTH(DATE($A$1,$B$1,1),0))+1,1))-1))
此の 式の、
最初と、最後の、
項を 省き、
集計すると、
出ると 思うのですよ。
(Nouble) 2022/09/09(金) 14:50
少し 方針を、
変えまして 省くのではなく、
0にすれば、
集計に 含めても、
構わないと、
寝たら 気付きましたので、
其方に 変えました。
_
此方です、
=SUMPRODUCT(SIGN(ROW(OFFSET($A$1,0,0,DAY(EOMONTH(DATE($A$1,$B$1,1),0))+2,1))<>1)*(ROW(OFFSET($A$1,0,0,DAY(EOMONTH(DATE($A$1,$B$1,1),0))+2,1))<>DAY(EOMONTH(DATE($A$1,$B$1,1),0))+2)*FREQUENCY(OFFSET(Sheet2!$A$1,0,0,COUNT(Sheet2!$A:$A),1)*OFFSET(Sheet2!$A$1,0,4,COUNT(Sheet2!$A:$A),1),DATE($A$1,$B$1,ROW(OFFSET($A$1,0,0,DAY(EOMONTH(DATE($A$1,$B$1,1),0))+1,1))-1)))
Enterでの 確定だけで、
機能します、
お試し 頂けますか?
_
動作証明ファイル、
https://1drv.ms/x/s!AjviygfJDgV_gZAJrr1K9Pq5Cd8CFw
(Nouble) 2022/09/10(土) 19:33
Power Queryで、こんなことができるという紹介です。
関数が苦手の方向け。長い数式が苦にならない方は無視してください。
グループ化という機能で、重複を除外して行数をカウントできます。
今回のお題にピッタリです。初めて使ってみました(たぶん)。
1)元データ YMD Y M CD FLG 2022/9/1 2022 9 253 1 2022/9/1 2022 9 255 0 2022/9/1 2022 9 254 1 2022/9/2 2022 9 253 0 2022/9/3 2022 9 255 0 2022/9/3 2022 9 254 1 2022/10/1 2022 10 254 1 2022/10/1 2022 10 256 1
2)結果(月別の一覧) Y M カウント 2022 9 2 2022 10 1
3)操作手順 ・[FLG]列でフィルターで1を抽出 ・[YMD][Y][M]列以外を削除 ・[Y][M]列を選んでグループ化 新しい列名;カウント 操作:個別の行数のカウント ・閉じて読み込む
指定の年月の結果のみ表示ということも可能ですが
あえて一覧表での出力としています。
(マナ) 2022/09/10(土) 22:41
徹夜明けの 疲れた、
発想を 引きずると。
_
・同じ日付は「1」としてカウント
此の 意味が、
掴めず 含めてませんが、
もっと 簡単に、
できますよね。
_
式、
=SUMPRODUCT((YEAR(OFFSET(Sheet2!$A$1,0,0,COUNT(Sheet2!$A:$A),1))=$A$1)*(MONTH(OFFSET(Sheet2!$A$1,0,0,COUNT(Sheet2!$A:$A),1))=$B$1)*OFFSET(Sheet2!$A$1,0,4,COUNT(Sheet2!$A:$A),1))
_
逆に、
同日 複数件数を、
全て 延べてしまい、
1と するならば。
_
式、
=SUMPRODUCT(SIGN(FREQUENCY((YEAR(OFFSET(Sheet2!$A$1,0,0,COUNT(Sheet2!$A:$A),1))=$A$1)*(MONTH(OFFSET(Sheet2!$A$1,0,0,COUNT(Sheet2!$A:$A),1))=$B$1)*OFFSET(Sheet2!$A$1,0,0,COUNT(Sheet2!$A:$A),1)*OFFSET(Sheet2!$A$1,0,4,COUNT(Sheet2!$A:$A),1),DATE($A$1,$B$1,ROW(OFFSET($A$1,0,0,DAY(EOMONTH(DATE($A$1,$B$1,1),0))+1,1))-1))*(ROW(OFFSET($A$1,0,0,DAY(EOMONTH(DATE($A$1,$B$1,1),0))+2,1))<>1)))
此方で 十分では、
ないですかね。
(Nouble) 2022/09/11(日) 00:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.