Power BI本月更新,推出了两个全新的可视化计算函数:LOOKUP 和 LOOKUPWITHTOTALS。这两个函数为用户提供了一种更简单、更直观的方式来引用和分析视觉对象中的数据。
本文将详细介绍它们的功能、使用方法以及区别,并通过示例帮助您快速掌握。
关于可视化计算的基本用法,这里不再重复介绍,还不熟悉的伙伴请参考之前的分享:2024开年Power BI重磅更新,先来体验一下可视化计算怎么用?
对于这两个新函数,PowerBI在可视化计算中相应的添加了两个新的模版:使用上下文查找值和查找包含总计的值。
通过这两个模版的名称,就可以猜出来这两个函数的大致功能,下面利用PowerBI星球案例模型来具体看一下他们的用法和区别。
LOOKUP函数:基于上下文的数据检索
LOOKUP函数的主要作用是从可视化矩阵中检索特定值,并支持应用一个或多个筛选器。
假设您有一个视觉对象,展示每个产品类别的销售额数据:
假如你想获得“手机配件”这个类别的销售额,可以点击可视化计算模版中的“通过上下文查找值”,并输入公式:
手机配件销售额1 =LOOKUP( SUM( [销售额] ), [产品类别], “手机配件” )
LOOKUP有三个参数,第一个参数是要计算的表达式,第二个参数是被检索的列,第三个参数是要查找的值。
它在每一行都返回了手机配件的销售额,这就是利用LOOKUP来查找视觉对象中某个数据的基本用法。
LOOKUPWITHTOTALS函数:引用总体数据
LOOKUPWITHTOTALS与LOOKUP类似,也用于从可视化矩阵中检索值并支持筛选器,语法相同,但它的处理方式有所不同:LOOKUPWITHTOTALS会引用总体数据。

继续使用上面的场景,再做一个可视化计算,将LOOKUP替换为LOOKUPWITHTOTALS看看结果是什么样。
手机配件销售额2 =LOOKUPWITHTOTALS( SUM( [销售额] ), [产品类别], “手机配件” )
你会发现,这种情况下两个函数的结果完全一样。
这是因为在产品类别上下文中,手机配件的销售额,无论在明细行还是总计行,销售额是一样的,所以两个函数的结果一样。
为了能看出两个函数的区别,我们可以上下文中增加一个字段,比如在列中放入年度字段,来看看计算结果是什么样的:
增加年度上下文后,LOOKUP函数受年度上下文的影响,查找的是当年手机配件的销售额;而LOOKUPWITHTOTALS不受年度上下文的影响,永远返回的都是所有年度的手机配件销售额的合计数。
这种差异的核心在于:LOOKUP依赖上下文,而LOOKUPWITHTOTALS关注总体。
LOOKUP和LOOKUPWITHTOTALS为Power BI的可视化计算带来了新的可能性。LOOKUP适合需要在特定上下文检索数据的场景,而LOOKUPWITHTOTALS则擅长引用总体数据进行分析。结合可视化计算的直观性和易用性,这两个函数将成为数据分析中的得力助手。
更多关于可视化计算的用法,请参考我们之前的介绍:
深入了解PowerBI可视化计算(1):RUNNINGSUM运行总和
深入了解PowerBI可视化计算(2):MOVINGAVERAGE移动平均
深入了解PowerBI可视化计算(3):占比和COLLAPSE 函数