Несколько иерархий «родитель-потомок» для вычисляемой меры в Power Pivot для Excel - PullRequest
0 голосов
/ 09 сентября 2018

Я пытаюсь сделать Power Pivot Report. В отчете у меня есть 5 экземпляров одной и той же иерархии, которая попадает в таблицу фактов на разных FK. Например. базовая иерархия - это иерархия организационных единиц, связанная с родителями и детьми. Состав:

NodeKey |     Node     |    Parent   |
------------------------------------------
   1    |  Accountant  |     Finance     |
   2    |   Finance    |  Central Admin. |
   2    | Italy-Branch |  EU Cost Center |

Он присоединяется к Факту как «Владелец», «Репортер», «Местоположение», «Ближе», «Рецензент».

Факт:

Fact Key | dwh_Owner_Key |dwh_Location_Key|
-------------------------------------------
   1     | 1             |  2             |
   2     | 1             |  2             |

NodeKey = dwh_Owner_Key
NodeKey = dwh_Location_Key
  • Я загружал таблицу в мою модель пять раз.
  • Я переименовал каждую таблицу в соответствии с ключами фактов, к которым они присоединяются.
  • В моей модели Power Pivot я выровнял иерархию, добавив столбцы

    HierarchyPath =  PATH ( 'table name'[NodeKey]; 'table name'[ParentKey] )
    
    HierarchyDepth = PATHLENGTH ( 'table name'[HierarchyPath] )
    
    IsLeaf =CALCULATE (
        COUNTROWS ( 'table name' ); 
        ALL ( 'table name'  ); 
        'table name' [ParentKey] = EARLIER ( 'table name' [NodeKey] )
    ) = 0
    
        Level1 = 
    LOOKUPVALUE (
        'table name'[Name]; 
        'table name'[NodeKey];
        PATHITEM (  'table name'[HierarchyPath]; 1; INTEGER )
    
    )
    
    Level2 - 10 (number of levels are fixed) = = IF (
    'table name'[HierarchyDepth] >= 2;
    LOOKUPVALUE (
        'table name'[Name];
        'table name'[NodeKey];
        PATHITEM ( 'table name'[HierarchyPath]; 2; INTEGER )
    ); 
    'table name'[Level1] 
    )
    

Приведенный выше код выполняется для всех 5 экземпляров иерархии.

  • Для моей меры мне удалось присоединить одну иерархию через следующий код, добавленный в мою таблицу фактов

    First i define Maximum Depth:
    ------------------------------------------------
    
    MaxNodeDepthTableName2:=MAX ( 'table name'[HierarchyDepth] )
    
    Then I check which Depth is browsed:
    ------------------------------------------------
    BrowseDepthTableName1:=ISFILTERED ( 'table name'[Level1] )
    + ISFILTERED ( 'table name'[Level2] )
    + ISFILTERED ( 'table name'[Level3] )
    + ISFILTERED ( 'table name'[Level4] )
    + ISFILTERED ( 'table name'[Level5] )
    + ISFILTERED ( 'table name'[Level6] )
    + ISFILTERED ( 'table name'[Level7] )
    + ISFILTERED ( 'table name'[Level8] )
    + ISFILTERED ( 'table name'[Level9] )
    + ISFILTERED ( 'table name'[Level10] )
    
    Then I calculate the measure:
    ------------------------------------------------
    Total Count:=IF (
    [BrowseDepthTableName1] > [MaxNodeDepthTableName2;
    BLANK ();
    SUM ( Fact[TotalCount] )
    )
    

Мой вопрос: Как добавить 4 других экземпляра иерархии к вычисляемому показателю? Как должен выглядеть DAX?

...