2017-10-04 151 views
2

我有一個包含多個列的大型數據集 - 每一行都有一個案例類型和一個合同值。在另一張工作表上,我有一個映射表(如下所示),用於決定應該爲每行分配「Type」的案例類型和值範圍。嵌套的IF Excel - 替代

例如,案例類型1和合同價值20,000,000美元的行將是類型1 - 案例類型3的值爲4,000,000美元的行將是類型3,因爲它落在類型3(N4和O4)

我知道我可以在14個幫助列中硬編碼IF語句來完成每個Case Type,然後合併非空白的單元格,但我很想知道是否有更智能的方法來實現這一點?

enter image description here

+1

使用兩個匹配的索引;一個以range_lookup爲0,另一個以range_lookup爲-1。 – Jeeped

+0

奎因,你有沒有得到一個可用的答案你的問題? – TotsieMae

回答

0

首先,需要進行調整的映射表數據組的報頭中。取消合併那些合併的單元格,然後給每一列標題。這樣做應該導致與此類似:

example of header


然後,我創建了第二個工作表中的成績表,看起來像這樣:

results table


可能嚴重過度簡化,但希望你可以根據需要修改公式。

現在,這裏有我在C2創建的公式:

{=INDEX(MappingTable!$K$1:$S$1,1,SUMPRODUCT(IF(B2<INDIRECT("MappingTable!"&ADDRESS(MATCH($A2,MappingTable!$I$2:$I$15,0)+1,11)&":"&ADDRESS(MATCH($A2,MappingTable!$I$2:$I$15,0)+1,19)),1,0))+1)}

注:這是一個數組公式,必須以按Ctrl + 移致力於 + 輸入。圍繞上述公式的花括號 - {} - 不會由用戶輸入,但會在按上述方式提交公式後創建。

重點提示:
B2將引用Contract Value在結果表中。

"MappingTable!"是一個硬編碼值,應該是您的工作表名稱加上最後的感嘆號。

$A2將在您的結果表中引用Case Type

MappingTable!$I$2:$I$15是對映射表上的標頭的絕對引用。

11,在第一個ADDRESS函數中找到,是對映射表工作表上K列的引用。它也可以寫成COLUMN(K:K)

19(在第二個ADDRESS函數中找到)是對映射表工作表上列S的引用。它也可以寫成COLUMN(S:S)