[英]How can I reproduce index/match lookup with wildcards in Excel data model?
TL;DR:標題說明了一切:有沒有辦法使用通配符在數據模型中重現 excel INDEX-MATCH 查找
我正在嘗試重新組織一個 Excel 文件,該文件使用 PowerQuery 從外部來源導入和轉換數據並將其加載到數據模型中。 然后使用此數據生成多個數據透視表並提取特定數據。 我需要在數據模型中添加一個計算列,使用純 Excel 公式計算相對容易,但我找不到任何方法在數據模型中創建它。 問題是數據模型非常適合替換 vlookups,但它不支持通配符,這在這個使用場景中是必不可少的。 下面當然是一個玩具例子來說明這個問題:
我有一個事實表tblFact ,如下所示:
這個想法是添加根據列Country、Model 和 SalesMan顯示消息的列,具有以下邏輯:
在原始文件中,這是通過添加嵌套 IF 來完成的,如下所示:
=IF([@Model]="A1";"Sold an A1";IF([@SalesMan]="Mario";"ITSAME";IF([@Country]="US";"OH YEAH";"Default message")))
但是,由於在實際案例中還有更多案例,條件更復雜,並且需要經常更新,因此很難維護。 我想添加一個查找表並利用 INDEX 和 MATCH 允許使用通配符的事實。
以下公式將復制嵌套 IF 的行為: =INDEX(tblLookUp[Message];MATCH(1;MATCH(tblLookUp[LUKey];[@LUValue];0);0))
查找更容易維護並添加具體案例。
現在,如果不是因為我被迫使用數據模型這一事實,這將起作用:
我嘗試了 LOOKUPVALUE 函數,但它不支持通配符,我也嘗試了 FILTER 和 SEARCH 的各種組合,但我什至無法獲得不返回錯誤的公式。
其他相關說明:
試試這個計算列:
=
PATHITEM(
CONCATENATEX(
FILTER( tblLookUp, SEARCH( tblLookUp[LUKey], MainTable[LUValue],, 0 ) ),
tblLookUp[Message],
"|"
),
1
)
SEARCH
支持通配符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.