縮短Excel“IF”公式?

縮短Excel“IF”公式?

這個公式確實有效,但它是巨大的:

=IF(X3=B2,K2,IF(X3=B3,K3,IF(X3=B4,K4,IF(X3=B5,K5,IF(X3=B6,K6,IF(X3=B7,K7,IF(X3=B8,K8,IF(X3=B9,K9,IF(X3=B10,K10,IF(X3=B11,K11,IF(X3=B12,K12,IF(X3=B13,K13,IF(X3=B14,K14,IF(X3=B15,K15,IF(X3=B16,K16,IF(X3=B17,K17,IF(X3=B18,K18,IF(X3=B19,K19,IF(X3=B20,K20,IF(X3=B21,K21))))))))))))))))))))

這是它正在做的事情:

If X3 is the same as B2, show the contents of cell K2.
If X3 is the same as B3, show the contents of cell K3.
If X3 is the same as B4, show the contents of cell K4.
...etc etc etc all the way to...
If X3 is the same as B21, show the contents of cell K21.

由於 B2:B21 只是一列單元格,而 K2:K21 也只是一列單元格,有什麼辦法可以縮短上面的公式,這樣它就不會很大了?

我不知道如何將其變成B細胞和K細胞的2個範圍。

嘗試這樣的事情是行不通的: =IF(X3=B2:B21,K2:K21)

因為告訴 Excel 使用:就是告訴它將從 B2 到 B21 以及 K2 到 K21 的所有內容相加。我想知道是否有其他分隔符號(不是:)告訴 Excel 單獨處理每個單元格而不是將它們相加?

這不起作用: =IF(X3=B2-B21,K2-K21)

結果是:#VALUE!

問題是,無論 B 單元格是哪個數字,也必須與 K 單元格中相應的數字(水平)保持匹配。

預先感謝任何可能知道答案的人,如果 Excel 中存在該功能,我相信這真的很簡單。

答案1

根據您的 Excel 版本,您可以使用XLOOKUP,VLOOKUPINDEX/MATCH

在此輸入影像描述

=XLOOKUP($X$3,$B$2:$B$22,$K$2:$K$22,"")
=VLOOKUP($X$3,$B$2:$K$22,10,FALSE)
=INDEX($K$2:$K$22,MATCH($X$3,$B$2:$B$22))

答案2

=VLOOKUP(X3;B2:K21;columns(B2:K2))

  • 在B2:B21中找出X3̈́的值,(範圍的第一列)
  • 找到後,選擇並在其右側顯示值 B2:K2-columns。

……是的,VLOOKUP 還需要一個參數,通常在您輸入函數名稱時顯示,甚至在您按 F1(幫助)時顯示。
此參數的預設值為True,因此在這種情況下無需鍵入它,但如果您需要在第一個參數中精確匹配,則需要在此處輸入“False”。

在其周圍添加IFERROR(...;"Not found")以顯示“未找到”的指示。

--- 檔案:example.csv --- 使用 M4 取代上面的 X3

,,,,,,,,,,,,
,1,,,,,,,,,A,,
,2,,,,,,,,,B,,"=VLOOKUP(M4;B2:K21;10;False)"
,3,,,,,,,,,C,,5
,4,,,,,,,,,D,,
,5,,,,,,,,,E,,
,6,,,,,,,,,F,,
,7,,,,,,,,,G,,
,8,,,,,,,,,H,,
,9,,,,,,,,,我,,
,10,,,,,,,,,J,,
,11,,,,,,,,,K,,
,12,,,,,,,,,L,,
,13,,,,,,,,,M,,
,14,,,,,,,,,N,,
,15,,,,,,,,,O,,
,16,,,,,,,,,P,,
,17,,,,,,,,,問,,
,18,,,,,,,,,R,,
,19,,,,,,,,,S,,
,20,,,,,,,,,T,,
,21,,,,,,,,,U,,

答案3

至少,我們可以使用去掉多餘的括號IFS:

=IFS(X3=B2,K2,X3=B3,K3,X3=B4,K4,X3=B5,K5,X3=B6,K6,X3=B7,K7,X3=B8,K8,X3=B9,K9,X3=B10,K10,X3=B11,K11,X3=B12,K12,X3=B13,K13,X3=B14,K14,X3=B15,K15,X3=B16,K16,X3=B17,K17,X3=B18,K18,X3=B19,K19,X3=B20,K20,X3=B21,K21)

這是一種通用的簡化,只要您有IF這樣的巢狀函數,即使不同的條件和結果沒有任何共同點,它也適用。

但是,就你的情況而言條件的簡單模式,我們可以進一步簡化您的表達式,例如使用 usingXLOOKUP:

=XLOOKUP(X3, B2:B21, K2:K21)

請注意,這XLOOKUP是 Excel 2021 中的一項新功能,可能不適用於舊版的 Excel。對於這些版本,您可以使用以下命令獲得相同的結果INDEXMATCH,如:

=INDEX(K2:K21, MATCH(X3, B2:B21, 0))

或使用VLOOKUP:

=VLOOKUP(X3, B2:K21, COLUMNS(B2:K2), FALSE)

然而,在這種情況下,如果受支持,XLOOKUP它可能是最方便的解決方案,並且它還支援幾個附加參數,使您可以指定如何完成搜尋以及在找不到精確匹配的情況下該怎麼做。

(另請注意,如果您想要沿行而不是列搜尋或從搜尋左側的列傳回值,則 應該和INDEX/MATCHVLOOKUPXLOOKUP只是工作在所有情況下,IMO 都是盡可能選擇它的充分理由。

相關內容