想不到Offset函數(shù)還可以這樣玩
大家好,今天和大家分享“想不到Offset函數(shù)還可以這樣玩“
一、今天的亮點
1、offset函數(shù)第3參數(shù)用了數(shù)組
2、offset函數(shù)第3參數(shù)用了數(shù)組里且還用了分號和逗號。它這樣用,可以把單元格一行數(shù)據(jù)轉(zhuǎn)為2列多行的二維數(shù)組來作Vlookup函數(shù)的第2參數(shù)的數(shù)據(jù)源,滿足Vlookup函數(shù)查找值月份一定要首列,而數(shù)據(jù)源中的月份不但不在首列,而且還分布在數(shù)據(jù)源里多列如下面的圖所示
3、如果有文本和數(shù)值如何降維,用T降維會所數(shù)值變成0,用N降維會把文本變成空''
想學的,跟我一起來,往下看
二、這樣奇葩的報表雙條件查找
根據(jù)姓名和月份查找對應的數(shù)量
1、動畫操作效果
2、公式截圖
=VLOOKUP(B7,IF(N(OFFSET($A$1,MATCH(A8,$A$1:$A$4,)-1,{1,2;3,4;5,6;7,8;9,10;11,12}))=0,'',N(OFFSET($A$1,MATCH(A8,$A$1:$A$4,)-1,{1,2;3,4;5,6;7,8;9,10;11,12})))&T(OFFSET($A$1,MATCH(A8,$A$1:$A$4,)-1,{1,2;3,4;5,6;7,8;9,10;11,12})),2,)
3、公式
4、公式解釋
OFFSET($A$1,MATCH(A8,$A$1:$A$4,)-1,{1,2;3,4;5,6;7,8;9,10;11,12}),首先通過Match函數(shù)定位姓名在那一行,再減掉1,得到offset偏移的行數(shù),從A1開始進行偏移,偏移的列數(shù)就是這今天經(jīng)典之處,20%用戶可能會玩offset第3參數(shù)偏移的列,用一維數(shù)組的用法,也就是{1,2,3,4,5,6,7,8,9,10,11,12}或者全是分號{1;2;3;4;5;6;7;8;9;10;11,;2},如果offset第3參數(shù)二維數(shù)組,也就是中間有逗號和分號,也就是這們今天這個{1,2;3,4;5,6;7,8;9,10;11,12},可能會玩的人少之又少了,可能不到5%,這個公式作用就是動態(tài)把每一行數(shù)據(jù)轉(zhuǎn)為2列多行來作vlookup函數(shù)的第2參數(shù)數(shù)據(jù)源
我們通過offset動態(tài)得到每一行數(shù)據(jù)轉(zhuǎn)為2列多行之后,現(xiàn)在問題又來了,offset返回的這個2列多行單元格里又有文本姓名,又數(shù)值型數(shù)字,現(xiàn)在這個是多維,不能直接用,要降維才能作Vlookup函數(shù)的第2參數(shù),怎么辦呢?,這又是今天分享的亮點,我暫時也沒有找到一個好方法,包含文本和數(shù)值型數(shù)字的多維用什么好的方法降維,這里來一個差點辦法
IF(N(OFFSET($A$1,MATCH(A8,$A$1:$A$4,)-1,{1,2;3,4;5,6;7,8;9,10;11,12}))=0,'',N(OFFSET($A$1,MATCH(A8,$A$1:$A$4,)-1,{1,2;3,4;5,6;7,8;9,10;11,12})))&T(OFFSET($A$1,MATCH(A8,$A$1:$A$4,)-1,{1,2;3,4;5,6;7,8;9,10;11,12})),先用N降維N(OFFSET($A$1,MATCH(A8,$A$1:$A$4,)-1,{1,2;3,4;5,6;7,8;9,10;11,12}))文本變成了0,數(shù)值型數(shù)字保留,所以加個判斷,如果等于0,就顯示空'',否則就顯示數(shù)字本身,再用&l連接T降維得到文本保留,數(shù)字為空,最后結(jié)果就是把文本和數(shù)值型數(shù)字都保留了,也起到降維的作用
最后用vlookup函數(shù)查找,根據(jù)月份,查找對應的數(shù)量,有的朋友又問,前面的姓名作用,就是定位那一行,姓名在單元格區(qū)域A1:M4那一行
聯(lián)系客服