Powerbi 基于切片器选择创建计算表

Powerbi 基于切片器选择创建计算表,powerbi,dax,powerquery,Powerbi,Dax,Powerquery,我有一个包含ID、名称和日期列的表,如下所示: +----+------+-----------------+ | ID | Name | Days | +----+------+-----------------+ | 1 | A | 30 days or less | | 1 | A | 30 days or less | | 1 | A | 30 days or less | | 1 | A | 31 to 60 days | |

我有一个包含ID、名称和日期列的表,如下所示:

+----+------+-----------------+
| ID | Name |      Days       |
+----+------+-----------------+
|  1 | A    | 30 days or less |
|  1 | A    | 30 days or less |
|  1 | A    | 30 days or less |
|  1 | A    | 31 to 60 days   |
|  2 | B    | 30 days or less |
|  2 | B    | 31 to 60 days   |
|  2 | B    | 61 to 90 days   |
|  2 | B    | 61 to 90 days   |
|  3 | C    | 90+ days        |
|  3 | C    | 61 to 90 days   |
+----+------+-----------------+
我旁边有两个切片器,来自两个不同的表,每个表都有这样一列

我在这里试图做的是,基于用户切片器选择,我希望对表进行筛选,只输出第一个切片器选择中不存在的“Name”,还需要对ID列执行反连接


因此,对于上述切片器选择,即。30天或更少与31到60天相比,结果应该是一个列为“Name”的表,只记录“C”作为唯一在“30天或更少”中不存在,但在“31到60天”中存在的名称。

我发现你的解释不匹配,因为你说“31到60天”中有C,但实际上“31到60天”中没有C在您的示例数据中。尽管存在上述困惑,我还是试图根据您的解释来找出流程,忽略了您的样本数据不匹配。如果我接近正确理解,您可以尝试以下步骤,如果您的要求有点不同,也可以进行调整

第1步:创建两个不同的(非关系)表,该表具有属于切片器的相同值。这两个表将具有相同的值,但您只需要从2个表创建2个切片器,并确保没有如下所示的关系-

第二步:创建以下度量-

show_hide = 

VAR current_name = MIN('your_base_table_name'[Name])
VAR selected_range_1 = SELECTEDVALUE('day range 1'[range])
VAR selected_range_2 = SELECTEDVALUE('day range 2'[range])

VAR chk_not_in = 
IF(
    COUNTROWS(
        FILTER(
            ALL('your_base_table_name'),
            'your_base_table_name'[Name] = current_name && 'your_base_table_name'[Days] = selected_range_1
        )
    ) = 0,
    1,
    0
)

VAR chk_in = 
IF(
    COUNTROWS(
        FILTER(
            ALL('your_base_table_name'),
            'your_base_table_name'[Name] = current_name && 'your_base_table_name'[Days] = selected_range_2
        )
    ) = 0,
    0,
    1
)


RETURN IF(chk_not_in = 1 && chk_in = 1, 1, 0)
下面是度量值的输出-

第3步:现在只需将新创建的度量值添加到视觉级别过滤器中,如下所示,您将根据切片器选择在视觉表格中获得预期的数据集


在您的示例数据中,“31到60天”中没有C。Var current name我用来在其中保留当前行名称。我测量,它一排一排地工作。因此,当它位于第N行时,变量将保留第N行的名称。此外,我使用该变量从表中查找存储在该变量中的名称的所有行。要获取计数,您可以转换自定义列的度量代码。然后,您可以为新创建的自定义列创建一个带有SUM的度量值以获取计数。最后,对于切片器样式,请从属性窗口中选择“切片器类型水平”。从第一个变量中,删除MIN并重试。让我们来看看。