Excel:map、映射——根據一列的取值自動填充另一列對應的值
背景
sheet1中有兩列,代表了一個映射關系。

sheet2中也有兩列,第一列和上表第一列類似(但是順序打亂了,而且可能存在多值、少值的情況)

如何構建一個映射,將sheet1中的第二列自動根據sheet2第一列的取值填充到第二列?最終期望得到一個這樣的表

公式
index(Value列,MATCH(KEY值,KEY列,0))
Value列:查找的K-V表的Value列,即sheet1的2列
KEY值:要填充的Value對應的哪個Key,例如“王五”就是A2
KEY列:查找的K-V表的KEY列,即sheet1的1列
最終的公式為:

之后用向下拉動的方式自動填充即可:

補充:
1、INDEX函數
寫法:INDEX(數組,行數,列數)
用途:根據坐標,從一組單元格中找到該坐標處的數值
注意:
1)如果數組為二維數組,那么行數、列數至少為1。
例如

要獲取李四的數學成績,寫法就是:
=INDEX(B2:D4,2,2)
即這片區域第二行第二列的數值。
2)如果數組為一維數組,那么行數、列數中必須有一個為0:
如果是一列,那么列數必須為0,且行數必不為0。
如果是一行,那么行數必須為0,且列數必不為0。
補充:
①如果上述不為0的行、列寫成了0,最后會顯示#SPILL!
②實際用的時候,如果是一維數組,那么后邊參數為0的行、列可以不寫,EXCEL會自動識別是列數還是行數。
例如:
①獲取李四的語文成績:80
此時選中語文列,行號設為2,列號為0

②獲取王五的英語成績:97
此時選中王五行,行號設為0,列號設為3

因此用好INDEX的關鍵在于后兩個參數,即坐標的構建。
例子
1、如果想把某一列每一行的值各重復3次。可以這樣寫:
=INDEX($B$2:$B$4,(ROW(B2)+1)/3)
即把2、3、4行映射到1,所以上文要(行號+1)/3
結果:

之后的其他情況都可以從中延伸。
2、MATCH函數
寫法:
①MATCH(值,值所在的列,0)
②MATCH(值1&值2,值1所在的列&值2所在的列,0)
如果跨表,則最后確認時需要用CTRL+SHIFT+ENTER進行計算。
用途:
獲取某個(些)值所在的行號。
例子:
從一堆字母對中,找到A、C所在的行號:


浙公網安備 33010602011771號