Подскажите пожалуйста, почему срабатывает условие IF( HASONEVALUE( 'Table1[Type] ) меры measure 1, хотя в столбце [Type] не одно, а несколько значений ? Спасибо
0033s написал: Или может "одно" относится к ячейке, а не ко всему столбцу ?
Да. Для каждой "ячейки" проверяется единственность уникальных значений 'Table1[Type] в текущем контексте фильтра. В строках конкретных Type задает контекст фильтра именно по этому Type, то есть в них HASONEVALUE( 'Table1[Type] ) будет true. По сути эта функция эквивалентна COUNTROWS ( VALUES ( 'Table1[Type] ) ) = 1
0033s, напишите меру CONCATENATEX( Table1, Table1[Type], ", ") и все станет понятно (включите при этом subtotals в отчете).
Цитата
0033s написал: И к примеру, как выглядели бы 2 значения ?
добавьте в таблицу строку X - A - 25 и обновите отчет. Т.е. строк в таблице в строке X - A уже 2, но HASONEVALUE все равно даст TRUE, т.к. значение А в столбце Type в этом случае уникальное. Но лучше всего это subtotals покажут.
Цитата
0033s написал: Или может "одно" относится к ячейке, а не ко всему столбцу ?
вы через вопросы на этом форуме решили освоить азы DAX? Напрасно. Почитайте лучше какую-нибудь хорошую книгу. Например, вот эту: ПОДРОБНОЕ РУКОВОДСТВО ПО DAX. Ссылки (и скидки) на эту и другие хорошие книги можно получить вот здесь: click_me
написал: вы через вопросы на этом форуме решили освоить азы DAX?
Не совсем так. Я решаю свои производственные задачи, точнее сказать переписываю решения полученные исключительно с помощью PQ на PQ+PP. На этом пути встречаются подводные камни, которые я решаю с помощью форума. За ссылку на книгу спасибо, обязательно постараюсь приобрести как только накоплю критическую массу вопросов.
написал: добавьте в таблицу строку X - A - 25 и обновите отчет. Т.е. строк в таблице в строке X - A уже 2, но HASONEVALUE все равно даст TRUE, т.к. значение А в столбце Type в этом случае уникальное.
Это просто китайская грамота. Я добавил еще одну строку X - A - 11 , итого у меня две совершенно одинаковые строки, где же тут уникальность? Может я легче пойму, если вы сможете привести пример, не уникального А ?
0033s написал: две совершенно одинаковые строки, где же тут уникальность?
а и правда, где ж она? HASONEVALUE проверяет наличие только одного уникального значения среди всех значений в столбце. Его суть описана выше surkenny, за что вы его поблагодарили. Видимо все поняли, но, как оказалось, нет... Вот еще проHASONEVALUE: Вот еще немного: вот эти простые меры
дают следующий результат (вы ж картинки любите) Как же так получается, что при наличии 2х одинаковых строк в evaluation context в строке X -- A меры нам показывают уникальность количество уникальных значений = 1 в столбце Type? Наверное, ошибка в DAX. Давайте подаваться на Нобелевскую премию скорее. В силу вышеизложенного, я не смогу привести вам пример "неуникального А", будь их сколь угодно много в нашем распоряжении. Я или плохо объясняю (что скорее всего) или не пойму чего вы хотите спросить. Поэтому, разрешите за сим откланяться и покинуть поле боя.
0033s, юмора не понял, ну и ладно. Мне кажется, что все непонимание (друг друга) крутится вокруг этого термина "уникальный" (набор значений). Безусловно, список {A, A} состоит из повторяющихся значений и List.IsDistinct (Power Query M) выдаст нам FALSE. Но он состоит из единственного уникального значения А, что и является причиной того, что HASONEVALUE (DAX) выдает TRUE. Так уж работает эта функция.
AlienSx, видимо есть какое то промежуточное понятие, которое я проскакиваю и от этого картина никак не складывается. В любом случае спасибо, за помощь и особенно за картинку (я их и правда люблю), она многое объясняет