excelperfect
連接運(yùn)算符是:&,可以將兩個(gè)或多個(gè)項(xiàng)目連接成一個(gè)項(xiàng)目,這些項(xiàng)目可以是數(shù)字、文本(使用引號(hào)括起來(lái))、公式結(jié)果,等等。
如下圖1所示,在單元格區(qū)域A2:C16中是源數(shù)據(jù),在單元格區(qū)域E2:G10中是想要的交叉表報(bào)告,顯示每種產(chǎn)品的L和R的數(shù)量。
圖1
可以看出,每個(gè)查找的結(jié)果都是基于兩個(gè)查找值。例如,單元格F4中得到的數(shù)量30是在源數(shù)據(jù)中查找同時(shí)滿足單元格E4中的產(chǎn)品代碼2A35-2A36和單元格F3中的L的結(jié)果。實(shí)現(xiàn)這種雙值查找的一種方法是在公式中連接兩個(gè)查找值和源數(shù)據(jù)表中的被查找的兩個(gè)列。在單元格F4中的數(shù)組公式為:
=INDEX($C$3:$C$16,MATCH($E4&F$3,$A$3:$A$16&$B$3:$B$16,0))
其中,MATCH函數(shù)用來(lái)獲得要查找的值在源數(shù)據(jù)中的相對(duì)位置,其第一個(gè)參數(shù)lookup_value的值是$E4&F$3(使用混合引用使得公式能夠向下向右擴(kuò)展),將兩個(gè)查找值連接為單個(gè)值;第二個(gè)參數(shù)lookup_array的值是$A$3:$A$16&$B$3:$B$16,將源數(shù)據(jù)中被查找的值所在的列連接起來(lái)。
下圖2展示了一種改進(jìn)方法,即在連接時(shí)在要連接的項(xiàng)目之間添加一個(gè)分隔符,這使得公式更為健壯。因?yàn)槿绻檎业闹刀际菙?shù)字的話,在連接后可能出現(xiàn)意想不到的結(jié)果。
圖2
使用DGET函數(shù)進(jìn)行多條件查找
如果數(shù)據(jù)集帶有字段名(即每列頂部的名稱),那么DGET函數(shù)能夠執(zhí)行基于多條件的查找,如下圖3所示。注意,條件單元格在相同的行表示AND條件,在不同的行表示OR條件。
圖3
使用DGET函數(shù)的缺點(diǎn)是,公式不能向下復(fù)制。
使用輔助列進(jìn)行多條件查找
如下圖4所示,添加了一個(gè)輔助列將要查找的值所在的列合并成一列,這樣就可以實(shí)現(xiàn)使用VLOOKUP函數(shù)進(jìn)行查找了。在單元格A3中的公式為:=B3&'|'&C3,下拉至數(shù)據(jù)末尾構(gòu)建輔助列。在單元格G4中的公式為:
=VLOOKUP($F4&'|'&G$3,$A$3:$D$16,4,0)
向下向右拖拉即可。
圖4
使用數(shù)據(jù)透視表查找
對(duì)于上述示例,也可以使用數(shù)據(jù)透視表實(shí)現(xiàn)所需報(bào)表,如下圖5所示。
圖5
對(duì)查找列進(jìn)行排序并使用近似匹配查找
當(dāng)進(jìn)行雙值查找時(shí),如果可以對(duì)源數(shù)據(jù)中的列進(jìn)行排序,那么查找時(shí)使用近似匹配比精確匹配更快。(因?yàn)榫_匹配從頭到尾遍歷列,而近似匹配進(jìn)行折半查找)如下圖6所示,先對(duì)“L/R?”列進(jìn)行升序排序,然后對(duì)“產(chǎn)品代碼”列進(jìn)行升序排序,在單元格F4中輸入數(shù)組公式:
=INDEX($C$3:$C$16,MATCH($E4&F$3,$A$3:$A$16&$B$3:$B$16))
向下向右拖動(dòng)至全部數(shù)據(jù)單元格。
圖6
可以看到,公式中的MATCH函數(shù)省略了參數(shù)match_type,默認(rèn)為執(zhí)行近似匹配。
如果可以對(duì)查找列進(jìn)行排序,那么可以使用LOOKUP函數(shù)處理數(shù)組操作,而無(wú)需按Ctrl+Shift+回車鍵。
使用LOOKUP函數(shù)
如果對(duì)查找列進(jìn)行了排序,那么就可以使用LOOKUP函數(shù)。LOOKUP函數(shù)執(zhí)行近似匹配查找,且能夠處理數(shù)組操作。對(duì)于上面的示例,在單元格F4中使用LOOKUP函數(shù)的公式為:
=LOOKUP($E4&F$3,$A$3:$A$16&$B$3:$B$16,$C$3:$C$16)
結(jié)果如下圖7所示。
圖7
公式改進(jìn)
INDEX函數(shù)能夠獲取整行或整列。決竅是將其row_num參數(shù)指定為0或者忽略,這將獲取整列。這樣,上文示例中的公式可以改進(jìn),無(wú)需按Ctrl+Shift+回車鍵,如下圖8所示。
圖8
在單元格F4中的公式為:
=INDEX($C$3:$C$16,MATCH($E4&F$3,INDEX($A$3:$A$16&$B$3:$B$16,),0))
向下向右拖拉即可。
《Ctrl+Shift+Enter:MasteringExcel Array Formulas》學(xué)習(xí)筆記
完美Excel
聯(lián)系客服