背景:我使用Excel函數來分析大量數據,實質上創建了一個靈活的數據透視表。它通過汽車等對很多比賽時間數據進行排序。在該表的這一部分中,我正在尋找每輛車的最小段時間。該表的其餘部分避免了宏和VBA,所以我想在這裏避免。INDIRECT()返回#VALUE!意外地
問題:我的公式在沒有零時工作,但有時會出現需要排除的零。我的數組公式是相當複雜的,但把它弄壞了我所做的變化是這樣的:
OLD(工作):
{=min(if(car_number = indirect("number_vector"), indirect("data_vector")))}
NEW(非工作):
{=min(if(and(car_number = indirect("number_vector"),not(0=indirect("data_vector"))), indirect("data_vector")))}
我在公式中使用INDIRECT()
與這個確切的參數幾次。但是,在此特定情況下(在NOT()
內),它會返回#VALUE!而不是{data1; ...; datan}。 請參閱下面的屏幕截圖。
評測之前:
評估後:
我會嘗試這種方法,你的邏輯是有道理的。 這兩個矢量的大小和形狀相同,它們是同一個表中的不同列。引用的東西在我的僞代碼中是一個錯誤(修復)。 – swolfe
好的 - 如果這不起作用,那麼問題可能是我從屏幕截圖中看到的COLUMN函數 - COLUMN有時會導致問題,因爲當您期望4時會返回像{4}這樣的數組 - 這會導致評估問題 - 修復在另一個像SUM這樣的函數中包裝COLUMN,例如** SUM(COLUMN())** –