基于主次Hub逻辑与图像分区的动态行计数

问题描述 投票:0回答:1

我在 Power BI 中有下表

ID   PrimaryHub    Secondaryhub         Image
1    Dubai         Dubai/Paris          01102024
2    Dubai         Dubai/Tokyo          01102024
3    Lisbon        Lisbon/Dubai/Paris   01102024
4    Madrid        Madrid/Dubai         01102024
5    Tunis         Tunis/Algiers        01102024
1    Dubai         Dubai/Paris          01112024
5    Paris         Paris/Dubai/Algiers  01112024
6    Dubai         Dubai/Alexandria     01112024

为了计算迪拜的 CI 数量,我们查看 PrimaryHub = Dubai,当 Image = 01102024 时等于 2

CI   PrimaryHub    Secondaryhub Image
1    Dubai         Dubai/Paris  01102024
2    Dubai         Dubai/Tokyo  01102024

然后我们排除 PrimaryHub = Dubai 的行:

CI   PrimaryHub    Secondaryhub  Image
1    Dubai         Dubai/Paris   01102024
2    Dubai         Dubai/Tokyo   01102024

并检查 Secondaryhub 值中包含 Dubai 的剩余行,在本例中为 2 行:

CI   PrimaryHub    Secondaryhub         Image
3    Lisbon        Lisbon/Dubai/Paris   01102024
4    Madrid        Madrid/Dubai         01102024

最终计数为 2 +2 = 4

当有另一个图像 01112024 时,它还取决于图像: 为了计算迪拜的 CI 数量,我们查看 PrimaryHub = Dubai,等于 2

1    Dubai         Dubai/Paris          01112024
6    Dubai         Dubai/Alexandria     01112024

然后我们排除该分区或映像 01112024 的 PrimaryHub = Dubai 的行

1    Dubai         Dubai/Paris          01112024
6    Dubai         Dubai/Alexandria     01112024

并检查 secondaryhub 值中包含 Dubai 的剩余行,在本例中为 1 行:

5    Paris         Paris/Dubai/Algiers  01112024

最终计数为 2 +1 = 3

该图像是加载记录时 DDMMYYYY 的文本表示形式。

我找不到解决方案,因为我是 DAX 初学者

powerbi dax
1个回答
0
投票

您需要获取 PrimaryHub 与切片器选择匹配的行数。 然后,您排除 PrimaryHub 与切片器选择匹配的行,并计算 secondaryHub 中包含 Dubai 的剩余行:

CountCIMeasure = 
VAR SelectedPrimaryHub = SELECTEDVALUE('Table'[PrimaryHub])
VAR SelectedImage = SELECTEDVALUE('Table'[Image])

VAR PrimaryHubCount = 
    CALCULATE(
        COUNTROWS('Table'),
        'Table'[PrimaryHub] = SelectedPrimaryHub,
        'Table'[Image] = SelectedImage
    )

VAR SecondaryHubCount = 
    CALCULATE(
        COUNTROWS('Table'),
        'Table'[PrimaryHub] <> SelectedPrimaryHub,
        SEARCH(SelectedPrimaryHub, 'Table'[SecondaryHub], 1, 0) > 0,
        'Table'[Image] = SelectedImage
    )

RETURN 
    PrimaryHubCount + SecondaryHubCount
© www.soinside.com 2019 - 2024. All rights reserved.