Добры день, всем! Помогите с решением нетривиальной задачки с помощью PowerQuery отсечь ненужные строки в этой таблице:
Дата
Параметр1
Параметр2
Параметр3
Параметр4
21.03.2023
Синий
Широкий
Call
2158
19.09.2023
Синий
Широкий
Call
8496
19.03.2024
Синий
Широкий
Call
1487
17.09.2024
Синий
Широкий
Call
3214
18.03.2025
Синий
Широкий
Call
9841
16.09.2025
Синий
Широкий
Call
3217
17.03.2026
Синий
Широкий
не Call
1898
17.03.2026
Синий
Широкий
Call
1478
15.09.2026
Синий
Широкий
Call
1456
16.03.2027
Синий
Широкий
Call
3259
14.09.2027
Синий
Широкий
Call
9165
14.03.2028
Синий
Широкий
Call
28
12.09.2028
Синий
Широкий
Call
5059
13.03.2029
Синий
Широкий
Call
7645
11.09.2029
Синий
Широкий
Call
6328
12.03.2030
Синий
Широкий
Call
7976
10.09.2030
Синий
Широкий
Call
6045
11.03.2031
Синий
Широкий
Call
3765
11.03.2031
Синий
Широкий
не Call
4007
30.09.2022
Желтый
Широкий
не Call
2158
30.09.2022
Желтый
Широкий
Call
8496
30.12.2022
Желтый
Широкий
Call
1487
31.03.2023
Желтый
Широкий
Call
3214
30.06.2023
Желтый
Широкий
Call
9841
29.09.2023
Желтый
Широкий
Call
3217
29.12.2023
Желтый
Широкий
не Call
1898
29.03.2024
Желтый
Широкий
Call
1478
28.06.2024
Желтый
Широкий
Call
1456
27.09.2024
Желтый
Широкий
Call
3259
27.09.2024
Желтый
Широкий
Call
9165
Правило отсечения: Как только в столбце "Параметр3" появляется значение "не Call", то убираем все значения с теми же "Параметр1" и "Параметр2" дата которых больше, чем дата когда появилось значение "не Call".
В результате получится следующая таблица:
Дата
Параметр1
Параметр2
Параметр3
Параметр4
21.03.2023
Синий
Широкий
Call
2158
19.09.2023
Синий
Широкий
Call
8496
19.03.2024
Синий
Широкий
Call
1487
17.09.2024
Синий
Широкий
Call
3214
18.03.2025
Синий
Широкий
Call
9841
16.09.2025
Синий
Широкий
Call
3217
17.03.2026
Синий
Широкий
не Call
1898
17.03.2026
Синий
Широкий
Call
1478
30.09.2022
Желтый
Широкий
не Call
2158
30.09.2022
Желтый
Широкий
Call
8496
Прикладываю пример в Excel. Буду очень рад помощи, спасибо!!!
let
Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
#"Added Index" = Table.AddIndexColumn(Источник, "Индекс"),
#"Grouped Rows" = Table.Group(#"Added Index", {"Параметр1", "Параметр2"}, {"a", each
let a=_ , b = Table.SelectRows(a, each [Параметр3] = "не Call"){0} in Table.SelectRows(a, each
[Индекс] < b[Индекс] or [Дата] <= b[Дата])}),
Custom1 = Table.Combine( #"Grouped Rows"[a])
in
Custom1
deffocus, покажите в примере при каких данных этот запрос не сработает
surkenny, запрос не всегда выдаст нужный результат - это я знаю К тому же неизвестно будет ли ниже еще и вторая партия(Синий и Широкий) или (Желтый и Широкий). Потому и прошу добавить данные при которых запрос не даст ожидаемое
Михаил Л, surkenny, большое спасибо за помощь! Проверил оба варианта. При какой комбинации они не работают: если вообще не найдено значения "не Call", в таком случае все данные должны попасть