所以與大多數索引匹配數組問題有點不同
我有一個從 A 到 B 的運動表。
這些動作中的每一個都對應於一組不同的「滾動步驟」。這些將是步驟 1、步驟 2 或步驟 3。
這種關係被記錄在一張簡潔的表格中,如下所示:
Step Type Relationship
Step 1 - Type 1 - 1
Step 2 - Type 1 - 0
Step 3 - Type 1 - 0
Step 1 - Type 2 - 1
Step 2 - Type 2 - 1
Step 3 - Type 2 - 0
Step 1 - Type 3 - 0
Step 2 - Type 3 - 0
Step 3 - Type 3 - 1
Step 1 - Type 4 - 1
Step 2 - Type 4 - 1
Step 3 - Type 4 - 1
其中 1 表示“是的,它們相關”,0 表示“不,它們不相關”。
現在步驟表中有一個子步驟,如下所示:
SubStep --- Step
1 1
2 1
3 1
4 1
5 1
6 1
7 2
8 2
9 2
10 3
11 3
12 3
現在,我有一個子步驟表,以及我需要執行多少個子步驟。我有一個動作表,以及有多少個動作單位從 A 移動到 B。
例如:
如果我的移動類型1 為100 個單位,我需要在子步驟1 - 6 中新增100 個單位。單位,總共移動 300 個單位,然後將 200 個單位加到子步驟 7-9。
我發現求和可能是實現此目的的最佳方法。目前,它的第一部分如下所示:
=SUMPRODUCT(UnitMovementWorksheetCurrent[Units],--(UnitMovementWorksheetCurrent[Month]=[@Month]),--(UnitMovementWorksheetCurrent[Year]=[@Year]),--(UnitMovementWorksheetCurrent[From]=[@[Lab Abbr]]),--(INDEX(MovementToStepLookup[Roll up Step],MATCH(UnitMovementWorksheetCurrent[Movement Type],MovementToStepLookup[Movement Number],0))=[@[Roll up Step]]))
然而,不起作用的部分是(INDEX(MovementToStepLookup[Roll up Step],MATCH(UnitMovementWorksheetCurrent[Movement Type],MovementToStepLookup[Movement Number],0))=[@[Roll up Step]]))
- 我希望從中得到一個 TRUE/FALSE 數組,但我只是得到一個 #VALUE 錯誤。索引正確地為我提供了數組,匹配正確地生成了一個數組,當合併兩個時(單步執行時),它只給我一個數字作為結果,而不是一個數字數組,然後它給我(例如){ 1} = 1,則為單一 TRUE。
當我逐步執行公式時,這是有效的,但是當我突出顯示要計算的整個內容時,它只會給我#VALUE。所以我想我有兩個問題(實際上,唯一的問題是如何獲取我的數據,但將其分解一下...):
1)如何讓索引匹配傳回數組結果?
2)我的公式做錯了什麼?
答案1
因此,經過更多的谷歌搜索後,答案很奇怪並且違反直覺,並且在撰寫本文時,我實際上並不知道它起作用的所有原因,只是它(似乎是!)起作用。
我之前犯了一個錯誤,當時我拉出匯總步驟,然後進行比較。這是不正確的,無論它是否被使用,我都需要退出。為了反映這一點,比賽略有改變。
強制 Index 傳回多個結果的方法似乎有兩個:1)有條件語句,2)有 N 函數,如下所示:
INDEX(MovementToStepLookup[已使用?],N(IF(TRUE,MATCH(UnitMovementWorksheetCurrent[運動類型],MovementToStepLookup[運動編號]*(MovementWorksheetCurrent[運動類型],MovementToStepLookup[運動編號]*(MovementToStepLookup[滾動步驟]=[@[滾動步驟]]),00)))))ToStepLookup[滾動步驟]=[@[滾動步驟]]),00))))),00)))
對於我的條件,我只是將其視為 TRUE。為什麼要費心去處理更複雜的事情呢?對於 N,只需將數組傳遞給它即可。
我不知道為什麼會這樣。解釋如何做到這一點的(更好的文章)說他們也不確定為什麼。更多閱讀內容可以在這裡找到:https://excelxor.com/2014/09/05/index-returning-an-array-of-values/。不過,它確實有效,所以我很高興