【发布时间】:2022-01-06 07:51:15
【问题描述】:
我想用过滤器“FilterByValue”将每个 ID 的停产日期计数 1。
我所说的停产日期是什么意思。
- 04.01.2021
- 05.01.2021
- 06.01.2021
- 08.01.2021
07.01.2021 如果日期之间的某一天缺少其停止,则该日期将丢失为连续日期。
日期也必须不同并且在过去 90 天内。
RowID 仅用于说明目的。
| RowID | ID | FilterByValue | Date |
|---|---|---|---|
| 1 | 1 | 1 | Monday, 4. January 2021 |
| 2 | 1 | 1 | Tuesday, 5. January 2021 |
| 3 | 1 | 1 | Tuesday, 5. January 2021 |
| 4 | 1 | 1 | Wednesday, 6. January 2021 |
| 5 | 1 | 1 | Monday, 11. January 2021 |
| 6 | 1 | 99 | Friday, 8. January 2021 |
| 7 | 2 | 1 | Tuesday, 9. February 2021 |
| 8 | 2 | 1 | Wednesday, 10. February 2021 |
| 9 | 2 | 1 | Thursday, 11. March 2021 |
| 10 | 2 | 1 | Friday, 12. March 2021 |
| 11 | 2 | 1 | Monday, 15. March 2021 |
| 12 | 2 | 1 | Tuesday, 16. March 2021 |
| 13 | 2 | 99 | Sunday, 14. March 2021 |
| 14 | 2 | 1 | Wednesday, 14. April 2021 |
我想要达到的目标:
| RowID | ID | CountDiscontinuedDates |
|---|---|---|
| 1 | 1 | 2 |
| 2 | 2 | 4 |
我尝试过的方法,我认为是一种不好/没有帮助的方法:
discontinuesDates = COUNTAX(FILTER(TableName, [ID]=1 && TableName[Date] > (TODAY()-90) && OR (DATEADD( TableName[Date] = (TableName[Datum],1,DAY), DATEADD( TableName[Date] = (TableName[Datum],-1,DAY) ) && TableName[ID] = EARLIER(TableName[ID]) && TableName[Date] = TableName[Date] ), TableName[ID])
discontinuesDates = CALCULATE(COUNT(TableName[ID]), FILTER(TableName, TableName[FilterByValue]=34 && TableName[ID] = EARLIER( TableName[ID]) && DATEADD( TableName[Date],1,DAY) <> EARLIER( TableName[Date])) )
【问题讨论】: