Вложенный ранг в DAX - PullRequest
       12

Вложенный ранг в DAX

0 голосов
/ 29 октября 2018

У меня есть две таблицы данных:

1.Fact:

ImaginaryFact = 
DATATABLE (
    "FruitKey", INTEGER,
    "Amount",   INTEGER,
    { 
        { 1, 1 }, 
        { 1, 5 }, 
        { 1, 2 }, 
        { 2, 2 },
        { 2, 3 },
        { 3, 4 },
        { 3, 5 },
        { 4, 2 },
        { 5, 2 },
        { 6, 3 },
        { 7, 8 }
    } )

2.Dimension:

Dimension = 
DATATABLE (
    "FruitKey", INTEGER,
    "Fruit",    STRING,
    "Colour",   STRING,
    { 
        { 1, "Apple",   "Green" }, 
        { 6, "Apple",   "Blue" }, 
        { 7, "Apple",   "Red" },         
        { 2, "Pear",    "Pink" }, 
        { 3, "Orange",  "Green" }, 
        { 4, "Kiwi",    "Green" }, 
        { 5, "Mango",   "Green" }
    } )

С этим простым соединением:

enter image description here

Затем я создал эти две меры:

Amount = SUM( ImaginaryFact[Amount] )

Rank Fruity = 
IF(
    ISFILTERED( 'Dimension'[Colour] ),
    RANKX( ALLSELECTED( 'Dimension'[Colour] ), [Amount] ),
    IF(
       ISFILTERED( 'Dimension'[Fruit] ),
        RANKX( ALLSELECTED( 'Dimension'[Fruit] ), [Amount] )
    )
)

Если я создаю «Матрицу», то мера «Ранг Фруктовый» означает, что я могу перемещаться вверх и вниз между Фруктами и Цветом, и ранг все еще работает И он удаляет строку «Всего», которую я хотел, так как эта строка не фильтруется:

enter image description here

enter image description here

ЗДЕСЬ ПРОБЛЕМА Когда я углубляюсь в иерархию, я хочу вернуть пустые значения для промежуточных итогов, так же как пустая строка Итого ...

enter image description here

1 Ответ

0 голосов
/ 29 ноября 2018

Пожалуйста, попробуйте использовать функцию IF (IsFiltered () ,,) вместо If (HasOneValue () ,,)

https://powerpivotpro.com/2013/03/isfiltered-a-better-way-to-detect-totals/

...