Формула Power BI Dax - проблема суммы в таблице - PullRequest
2 голосов
/ 13 апреля 2020

У меня есть таблица в отчете, которая показывает количество открытых дел по возрастным группам на конец каждого месяца, она использует таблицу возрастных групп и таблицу дат, которые отделены от основной таблицы данных (которая называется «Ребенок в формула ниже). Кажется, это работает, за исключением итогов в таблице, которые ведут себя очень странно. Я искал здесь решения и вроде понимаю, почему итоги не работают в таблицах power bi из-за контекста, но не могу понять, почему я получаю такой низкий уровень. цифры здесь и на чем они основаны.

Моя формула такова:

Number Children by Age Group = 
VAR AgeMin = SELECTEDVALUE ( 'Age Group Table'[AgeMin] )
VAR AgeMax = SELECTEDVALUE ( 'Age Group Table'[AgeMax] )
RETURN
CALCULATE (
    DISTINCTCOUNT ( 'Child'[Person ID] ),
    FILTER (
        'Child',
        'Child'[Start_Date] <= MAX ( Dates[Date] )
            && ('Child'[End_Date] >= MAX ( Dates[Date] ) || ISBLANK ( 'Child'[End_Date] ) )
            && FLOOR ( DATEDIFF ( 'Child'[Date of Birth], MAX ( Dates[Date] ), DAY ) / 365.25, 1 ) >= AgeMin
            && FLOOR ( DATEDIFF ( 'Child'[Date of Birth], MAX ( Dates[Date] ), DAY ) / 365.25, 1 ) <= AgeMax
    )
)

и результаты, которые я получаю в своей таблице:

Sample Result Screenshot

Если я подставлю сумму вокруг формулы, итоговые значения go до 180, выше, но все еще слишком низки. Мне не нужно иметь итоговые значения в таблице, но я хотел бы понять что расширяет мои знания о формулах Дакса

1 Ответ

0 голосов
/ 13 апреля 2020

В общем случае всегда полезно предоставить:

  • небольшой набор данных выборки
  • соответствующую информацию о модели данных

Так что людям проще воспроизвести вашу ошибку и протестировать решение. Тем не менее, я видел подобную ситуацию много раз, и стандартный процесс ее решения выглядит следующим образом:

  1. Настройка DAX Studio для запуска запросов DAX (вы позже выясним, почему)
  2. Используйте Performance Analyzer для извлечения запроса для создания этой таблицы. Это будет выглядеть примерно так:

    DEFINE  /* this defines report-level measures and filter context */
    MEASURE Table1[Measure1] = ...
    
    VAR __dsfiltertable0 = ...
    
    VAR __dsfiltertable1 = ...
    ...
    EVALUATE  /* this evaluates the data used in the visualization */
    ...```
    
  3. Теперь вы можете изменить запрос, чтобы извлечь (1) таблицу из одного столбца 'Child' [Person Id], которая используется для получения значения в январе & 0-4 года и (2) таблицы из одного столбца 'Child' [Person Id], которая используется для получения значения в январе & Total.
    Вы можете легко экспортировать эту таблицу в Excel и исследовать, что проблема.

Если вы потерялись, вы можете поделиться запросом, извлеченным с помощью Performance Analyzer, и я могу сгенерировать вам запросы для запуска в DAX Studio.

...