У меня есть набор данных в столбцах следующим образом:
Столбец Flag может иметь значения 1 или 0. В столбце Reporting Month указаны данные за май и июнь.
Мне нужен список всех Object ID, где Flag есть 1 в June и не было 1 в May.
Я хочу добиться этого во внешнем интерфейсе Qlik с помощью выражения.
Я попытался использовать выражение set, но мне не удалось получить окончательный результат.
Я создал две переменные:
Concat({<[Flag] = {'1'}>} Distinct [ObjectID],', ')
Concat({<[Flag] = {'1'},[Reporting Month] = {"$(vPreviousMonth)"}>} Distinct [ObjectID],', ')
Есть ли способ сравнить два набора данных (массивы)/строки в qliksense?





Если я правильно понял ваш вопрос, ваши данные выглядят примерно так:
Data:
Load [Object ID], Flag, Date#([Month], 'MM-YYYY') as [Reporting Month]
Inline [
Object ID, Flag, Month
72, 0, 05-2023
83, 1, 05-2023
99, 0, 05-2023
12, 1, 05-2023
43, 0, 05-2023
23, 0, 05-2023
72, 1, 06-2023
83, 0, 06-2023
99, 1, 06-2023
12, 0, 06-2023
43, 0, 06-2023
];
И вы ищете комбинацию Object ID, например:
Concat({$<[Flag] = {'1'}>*<[Object ID] = E({<[Reporting Month] = {'05-2023'}, [Flag] = {'1'}>})>} Distinct [Object ID],', ')
Что приводит к
поскольку Object ID 99 и 72 — единственные в моих фиктивных данных, где Flag = 1 в июне, а Flag = 0 в мае.
Выражение set по сути создает пересечение всех Object Id с Flag = 1 и тех Object ID, у которых НЕТ Flag = 1 в мае. Буква E означает «Исключение».
Спасибо. Это то, что я хотел :). Я рассмотрю это выражение более подробно, поскольку я новичок в анализе множеств.