如何使用 Power BI 切片器筛选 table 的两列
How to use a Power BI slicer to filter two column of a table
我有一个 table 的进入和退出时间,有些人是这样的:
Name | EnterTime | ExitTime
=============================
Tom | 13:52:00 | 20:55:00
Robert | 15:55:00 | 21:12:00
Sarah | 19:08:00 | 19:48:00
Jack | 16:54:00 | 17:32:00
我想向用户显示在选定的时间点谁在场。
换句话说,我想要一个 dateTime 切片器,用户将选择一个时间,然后 table 被过滤以仅显示具有以下内容的行:
EnterTime < selectedTime < ExitTime
这可以通过几个步骤完成。
首先,我们需要一个日期列表来进入我们的切片器。如果您使用单独的日期 table,那么这是一个很好的来源。否则,您可以使用 DAX 构建一个包含所有日期的 EnterTime 和 ExitTime 列。
单击建模功能区中的 'Create Table'。输入以下 DAX:
DateListTable = UNION(
SELECTCOLUMNS('MyTable', "DateList", 'MyTable'[EnterTime]),
SELECTCOLUMNS('MyTable',"DateList", 'MyTable'[ExitTime])
)
您现在有一个切片器和一个 table 视觉对象。 Select 切片器,然后导航到格式功能区(它仅在选择视觉对象时可用。使用编辑交互关闭切片器在 table 上的过滤。将其设置为无交互(带有一条对角线穿过它)。
创建新度量
ShowDate =
VAR SelectedDate = SELECTEDVALUE('DateListTable'[DateList], BLANK())
Return
if(SelectedDate >= Max('MyTable'[EnterTime ]) && SelectedDate <= max('MyTable'[ExitTime]), 1, 0)
最后,在新度量 ShowDate 为 1 时过滤 table 视觉对象。
因此,我们创建了一个带有完整日期列表的独立切片器。但是我们打破了它和 table 之间的任何过滤关系。相反,我们使用 'SelectedValue' 来捕获从过滤器中选择的值,并创建一个 dax 度量,当过滤器中的值介于 EnterTime 和 Exit 时间之间时显示“1”。过滤该 dax 度量,我们得到了我们想要的行为。
我有一个 table 的进入和退出时间,有些人是这样的:
Name | EnterTime | ExitTime
=============================
Tom | 13:52:00 | 20:55:00
Robert | 15:55:00 | 21:12:00
Sarah | 19:08:00 | 19:48:00
Jack | 16:54:00 | 17:32:00
我想向用户显示在选定的时间点谁在场。
换句话说,我想要一个 dateTime 切片器,用户将选择一个时间,然后 table 被过滤以仅显示具有以下内容的行:
EnterTime < selectedTime < ExitTime
这可以通过几个步骤完成。
首先,我们需要一个日期列表来进入我们的切片器。如果您使用单独的日期 table,那么这是一个很好的来源。否则,您可以使用 DAX 构建一个包含所有日期的 EnterTime 和 ExitTime 列。
单击建模功能区中的 'Create Table'。输入以下 DAX:
DateListTable = UNION(
SELECTCOLUMNS('MyTable', "DateList", 'MyTable'[EnterTime]),
SELECTCOLUMNS('MyTable',"DateList", 'MyTable'[ExitTime])
)
您现在有一个切片器和一个 table 视觉对象。 Select 切片器,然后导航到格式功能区(它仅在选择视觉对象时可用。使用编辑交互关闭切片器在 table 上的过滤。将其设置为无交互(带有一条对角线穿过它)。
创建新度量
ShowDate =
VAR SelectedDate = SELECTEDVALUE('DateListTable'[DateList], BLANK())
Return
if(SelectedDate >= Max('MyTable'[EnterTime ]) && SelectedDate <= max('MyTable'[ExitTime]), 1, 0)
最后,在新度量 ShowDate 为 1 时过滤 table 视觉对象。
因此,我们创建了一个带有完整日期列表的独立切片器。但是我们打破了它和 table 之间的任何过滤关系。相反,我们使用 'SelectedValue' 来捕获从过滤器中选择的值,并创建一个 dax 度量,当过滤器中的值介于 EnterTime 和 Exit 时间之间时显示“1”。过滤该 dax 度量,我们得到了我们想要的行为。