我有三个表模型。字典不完整。在FactTable中,可能会出现没有定义类别的新产品。
我使用以下 Bridge 表。
Bridge =
ADDCOLUMNS(
DISTINCT(UNION(DISTINCT(FactTable[product]), DISTINCT(Dictionary[product])))
, "FoundCategory"
, LOOKUPVALUE(
Dictionary[category]
, Dictionary[product]
, FactTable[product]
)
)
如何强制LOOKUPVALUE函数返回Undefined
而不是blank()
的值。
我可以想到:
Bridge =
ADDCOLUMNS(
DISTINCT(UNION(DISTINCT(FactTable[product]), DISTINCT(Dictionary[product])))
, "FoundCategory"
, IF(ISBLANK(
LOOKUPVALUE(
Dictionary[category]
, Dictionary[product]
, FactTable[product])
)
,"Unmapped"
,LOOKUPVALUE(
Dictionary[category]
, Dictionary[product]
, FactTable[product])
)
)
但是我不知道它是否不会两次计算LOOKUPVALUE。如果是这样,哪种方法更有效?
如果您想重新创建问题,请参见以下表格。
事实表:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSiwoyElVitWJVkpKzANCMLMgvySxJF8pNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [product = _t])
in
Source
词典:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSiwoyElV0lFKKyrNLFGK1YlWKsgvSSzJBwqVpaanliQmAaVjYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [product = _t, category = _t])
in
Source
答案 0 :(得分:1)
您可以在其中使用if else循环,例如:-
Bridge =
ADDCOLUMNS
(
DISTINCT(UNION(DISTINCT(FactTable[product]), DISTINCT(Dictionary[product]))),
"FoundCategory",
IF(
LOOKUPVALUE(
Dictionary[category],
Dictionary[product],
FactTable[product]) = "",
"Undefined",
LOOKUPVALUE(
Dictionary[category],
Dictionary[product],
FactTable[product]))
)
或者您可以这样做,
Bridge =
DISTINCT(UNION(DISTINCT(FactTable[product]), DISTINCT(Dictionary[product])))
然后是一个计算列:-
foundCategory =
var look_up_value = LOOKUPVALUE(
Dictionary[category],
Dictionary[product],
Bridge[product])
var out = IF(look_up_value = BLANK(), "undefined", look_up_value)
return out
答案 1 :(得分:0)
执行此操作的另一种方法是使用LOOKUPVALUE函数的备用值字段。这使您可以指定返回的值而不是空白,从而省去了检查是否为空的麻烦。
LOOKUPVALUE,位于该功能的Microsoft联机文档中。
编辑: 在Power BI Desktop中进行了快速测试,并能够获取替代值以在现有模型的计算列中使用。
LOOKUPVALUE(
Dictionary[category]
, Dictionary[product]
, FactTable[product])
, "Undefined"
)