如何正確配製陣列配方中的IFNA?

如何正確配製陣列配方中的IFNA?

背景

我有一個問題,我想引用命名範圍並顯示其值。範圍是一個值列表,但我事先不知道列表中有多少元素。假設清單中有 1 到 8 個值。

我的方法是在 8 個長範圍上使用陣列公式,並使用 IFNA() 來屏蔽 #N/A 輸出。輸出中有一些空白是可以接受的,但顯示 #N/A 看起來不太專業。 ISNA 不起作用,我懷疑這是因為數組公式改變了 ISNA 行為。下圖中的範例。

Microsoft Excel 的圖片顯示了我對陣列公式的嘗試。

解決方案的限制

這些數據將在稍後階段在數據透視表中使用,因此簡單地將數據屏蔽為不可見是行不通的 - 我真的不想獲得任何 #N/A 值。空字串也可以;空字串也不是真正的正確答案,但至少它失敗得更優雅一些。

該解決方案對於其他人來說必須相對容易維護,因為我正在為一些同事開發模型,他們可能希望在稍後階段進行進一步的更改。因此,我想避免很長的公式和廣泛使用名稱管理器。

問題

簡單地數組複製“可變大小範圍而不得到 N/A 的“正確”方法是什麼?

……其中「適當」意味著簡單、緊湊的論壇,易於維護並且不會攜帶隱藏數據。

答案1

使用 INDEX 代替,將其放入輸出的第一個單元格並複製所需的行數:

=IFERROR(INDEX(rng_1,ROW(1:1)),"")

ROW(1:1) 將在向下複製時進行迭代,拉動行中的下一個。當它用完時,它將拋出一個錯誤並被""放置在它的位置上。

在此輸入影像描述

答案2

簡單地「數組複製」一系列可變大小而不得到 N/A 的正確方法是什麼?

我認為沒有,但也許其他一些方法可以解決您的問題,例如使用數組對列進行條件格式化或使用非數組公式。

命名範圍清單解決方案範例

條件格式:

有條件地格式化列/範圍,將錯誤單元格文字的格式變更為白色或與單元格顏色混合的任何顏色。

條件格式

公式範例:

使用非數組公式並讓公式處理錯誤。

=IFERROR(IF(INDEX(Pets,ROWS($J$1:J1),COLUMNS($J$1:J1))="","",INDEX(Pets,ROWS($J$1:J1),COLUMNS($J$1:J1))),"")

答案3

在史考特‧克萊納斯回答的幫助下,我做出了以下決定:帶有建議答案的 Excel 表格

它應該稍微不容易出錯,因為該ROWS命令引用與寫入輸出相同的區域。這樣,人們就不應該在沒有意識到的情況下插入嚴重破壞公式的行。

我對這個解決方案不滿意,但我想它必須做...

相關內容