PowerBI:根据度量过滤器从列中获取值

Posted

技术标签:

【中文标题】PowerBI:根据度量过滤器从列中获取值【英文标题】:PowerBI: Get values from a column based on a measure filter 【发布时间】:2021-11-17 03:08:15 【问题描述】:

我有一个 PowerBI 仪表板,其中包含赌场客人信息,包括他们的纬度和经度坐标。仪表板允许用户输入邮政编码并选择该邮政编码周围的半径(切片器)。这样做时,它将赌场客人的桌子过滤为仅距离(度量)小于或等于所选半径的客人。我使用这个距离度量和逻辑来创建另一个度量“InRadius”,根据给定的客人是否在半径内,它会显示 1 或 0。然后将此“InRadius”度量用作我的表格以及其他视觉效果的过滤器。一切正常,除了我想添加一个“介于”切片器来过滤客人的 ADW 范围并且我无法通过我的度量“InRadius”过滤这个切片器,因此我在切片器中的 ADW 的最小值和最大值,不要准确反映在我的表中过滤的客人的 ADW 范围。我有什么办法可以解决这个问题吗?是否可以创建一个我可以专门用于此切片器的新度量?是否可以仅通过已过滤表中存在的值过滤切片器?一般来说,我只是想创建一个切片器,根据度量值过滤列值,但不知道如何去完成它。

我在创建新度量时尝试了一些代码,但没有给出预期的结果:

InRadiusADWFilter = IF([InRadiusPatron]=1, VALUES(TF_MapRadius[ADWNet]))

InRadiusADWFilter = FILTER(VALUES(TF_MapRadius[ADWNet]), [InRadiusPatron]=1)

InRadiusADWFilter = CALCULATE(VALUES(TF_MapRadius[ADWNet]), [InRadiusPatron]=1)

这是我的测量距离代码:

// Haversine/great-circle distance calculation adapted from Stack Overflow: https://***.com/questions/27928/calculate-distance-between-two-latitude-longitude-points-haversine-formula
VAR __latSelected = SELECTEDVALUE('TF_MapRadius'[maplat])
VAR __lonSelected = SELECTEDVALUE('TF_MapRadius'[maplong])
VAR __radius = 3956
VAR __multiplier = PI()/180 
VAR __latDiff = (MIN('Selector'[Latitude])-__latSelected) * __multiplier
VAR __lonDiff = (MIN('Selector'[Longitude])-__lonSelected) * __multiplier
VAR __formula1 =
    SIN(__latDiff/2) * SIN(__latDiff/2) +
    COS(MIN('Selector'[Latitude]) * __multiplier) * COS(__latSelected * __multiplier) *
    SIN(__lonDiff/2) * SIN(__lonDiff/2)
VAR __formula2 = 2 * ATAN(DIVIDE(SQRT(__formula1),SQRT(1-__formula1)))
VAR __distance = __radius * __formula2
RETURN __distance

这是我的度量“InRadius”的代码:

InRadiusPatron = if('TF_MapRadius'[Distance2] < Radius[Radius Value],1,0)

我创建了代表我的过滤表的虚拟表:

ID PatronName ADWNet Distance InRadius
1 Smith, John 325,555 5.2 1
2 Jobs, Steve 200 7.0 1
3 Jeter, Derek 90,000 10.1 1
4 Jordan, Michael -2,567 14.5 1

【问题讨论】:

【参考方案1】:

如果您有返回 1/0 的度量(例如 InRadius),那么您可以过滤您的可视化(选择它并转到过滤器窗格)。

【讨论】:

这是我第一次尝试的,它适用于我的表格和其他可视化。但是当我尝试在我的“中间”切片器上使用它时,它说数据范围不再可用。

以上是关于PowerBI:根据度量过滤器从列中获取值的主要内容,如果未能解决你的问题,请参考以下文章

pandas 按正则表达式条件从列中过滤字符串并替换它

PowerBI 自定义可视化聚合 dataViews 值

根据 Pandas 中另一列中的索引从列中获取数据

使用窗口函数根据另一列从列中检索值

Rails:如何从列中获取唯一值

选择总和列,然后从列中获取最小值