避免 Excel 函數中的長巢狀 IF

避免 Excel 函數中的長巢狀 IF

我有一個依賴兩個不同輸入的公式:第一個是 0 到 5 之間的整數值,第二個是數組中值的捨入總和。我想讓使用者輸入這兩個值,然後用公式確定所需的輸出。問題是現在我對第一個變數有 6 種組合,每種組合都會導致第二個變數的使用方式改變。因此,我需要大量 IF 語句才能使其正常運作。

我在其他地方設定了表格,每個表格對應 0 到 5,以確定正確的值。我的問題是,有沒有辦法讓 Excel 執行以下操作?

  1. 檢查 0 到 5 是否已放入儲存格中A2

  2. 轉到包含該數字的工作表。

  3. INDEX(...,MATCH())根據數組中放置的值的數量以及值的內容從該表中的表中獲取。

我想知道完全避免使用表格並嘗試直接計算是否更有意義,但我看不到一種方法可以做到這一點,而不會導致大量嵌套IF。如果這裡有任何不清楚的地方,請告訴我,我會盡力解釋。

答案1

如果我理解正確,您需要建立一個公式,對不同工作表中的表執行索引/匹配操作,使用者在其中選擇應搜尋哪個工作表

聽起來您可能想要使用 CHOOSE 和 INDIRECT 根據 A2 中放置的值動態建立對應工作表的路徑。

例如,下面的程式碼將使用 B2 中找到的值與對應工作表上 A1:A3 中的儲存格執行“匹配”,其中工作表基於使用者在 A2 中輸入的值 (1,2,3)

=MATCH(A2,(INDIRECT(CHOOSE(B2,"Sheet1","Sheet2","Sheet3") & "!" & "A1:A3")),0)

這裡使用 CHOOSE 來觀察儲存格 (A2),並根據輸入的值輸出具有相應索引的對象,在本例中是工作簿名稱。

INDIRECT 可讓您動態建立儲存格路徑,因此將正確的工作表名稱嵌入到 SUM 函數所使用的路徑中。

當然,如果您的表格被命名為範圍或大小不同,您始終可以將上面範例中的靜態「A1:A3」變更為另一個CHOOSE,該CHOOSE 將根據使用者在另一個儲存格中的輸入輸出路徑的正確部分。

如果這與您想要做的事情完全不符,請原諒我 - 我不確定我是否理解您列表中的步驟 3...

相關內容