前面已經給大家講解了Office365的部分新函數,如Xlookup、Unique、Filter、Sort等,解決了查詢、提取、以及排序的難題,在實際的應用中具有很多的價值。今天,我們繼續學習Office365的新增函數:Xmatch、RANDarray、SEQUENCE。
一、Xmatch函數。
功能:返回項目在數組中的相對位置,默認情況下,需要精準匹配。
語法結構:=Xmatch(定位置,定位置所在的範圍,[匹配模式],[搜索模式])。
解讀:
1、Xmatch函數功能有4個參數,其中前兩個參數時必備的。從字面意思或者Match的應用經驗上就可以看出其用法。
2、第3個參數“匹配模式”共有4個值,分别為0、1、-1、2。其中0為精準匹配,如果未找到合适的值,則返回#N/A;-1為精準匹配或返回下一個較小的值;1為精準匹配或返回下一個較大的值;2為通配符匹配,主要應用在文本數據匹配場合,“?”和“*”分别表示匹配一個或多個字符。
3、第4個參數“搜索模式”共有4個值,分别為1、-1、2、-2。其中1表示從上到下、從左到右搜索;-1表示從下到上、從右到左逆向搜索;2表示二進制按升序搜索;-2表示二進制按降序搜索。
應用案例:
1、提取指定值的相對位置。
目的:提取員工在指定數據表中從上到下的相對位置。
方法:
在目标單元格中輸入公式:=XMATCH(J3,B3:B12,0,1)。
2、提取指定值的相對位置。
目的:提取員工在指定數據表中從下到上的相對位置。
方法:
在目标單元格中輸入公式:=XMATCH(J3,B3:B12,0,-1)。
解讀:
1、從下到上的搜索在Match函數中是無法實現的,這也是Xmatch函數更為先進的體現。
2、當Xmatch函數的第4個參數為-1時,搜索“從下到上、從右到左”,但位置的返回值依然是按照數據範圍從上到下、從左到右依次定位。請大家注意區分上圖中“魯肅”位置的變化。
3、提取指定的值。
目的:按照不同的搜索方向提取“魯肅”的“月薪”。
方法:
在目标單元格中輸入公式:=INDEX(G3:G12,XMATCH(J3,B3:B12,0,1))或=INDEX(G3:G12,XMATCH(J3,B3:B12,0,-1))。
解讀:
1、示例中,首先按“從上到下”的搜索模式定位“魯肅”的相對位置,并提取“月薪”;其次按“從下到上”的搜索模式定位“魯肅”的相對位置,位置由原來的1變為了10,然後提取對應位置上的“月薪”。
2、此功能用Index Match是無法實現的,需要借助于其它條件。
二、Randarray函數。
功能:返回随機數組。可以指定要返回的行數和列數,最小值和最大值,以及是否返回整數或小數值。
語法結構:=Randarray([行數],[列數],[最小值],[最大值],[整數或十進制值])。
解讀:
1、從上述的語法結構中可以看出,Randarray的參數可以全部省略,當省略全部參數時,其功能和Rand函數沒有差别。
2、如果不指定“行數”或“列數”,Randarray函數将返回0-1之間的單個值。
3、如果不指定“最小值”和“最大值”,Randarray函數分别用0和1默認表示。
4、參數“最小值”必須小于“最大值”,否則返回錯誤代碼#VALUE!。
5、參數“整數或十進制”功能有2個值,分别為TRUE和FALSE;“TRUE”表示“整數”,“FALSE”或省略表示十進制值。
應用案例:
1、返回10行,12列的随機值。
方法:
在目标單元格中輸入公式:=RANDARRAY(10,12)。
2、返回10行、12列,最小值為1,最大值為100的值。
方法:
在目标單元格中輸入公式:=RANDARRAY(10,12,1,100)。
3、返回10行、12列,最小值為1,最大值為100的整數值。
方法:
在目标單元格中輸入公式:=RANDARRAY(10,12,1,100,1)。
解讀:
Randarray函數的第5個參數制定了Randarray的返回值的類型。TRUE為整數值,FALSE或省略為十進制值。
三、Sequence函數。
功能:返回一個等差序列的數字列表。
語法結構:=Sequence(行,[列],[開始值],[等差步長])。
解讀:
1、第1個參數“行”為等差序列數字列表的行數,必填。
2、第2個參數“列”為等差序列數字列表的列數,選填,默認值為1。
3、第3個參數“開始值”為等差序列的第一個數字,默認值為1。
4、第4個參數“等差步長”為數組中兩個連續值遞增的量,默認值為1。
應用案例:
1、快速生成1-10的序号。
方法:
在數據區域的目标單元格中輸入公式:=SEQUENCE(10)。
2、快速返回10行、12列的序列。
方法:
在目标單元格中輸入公式:=SEQUENCE(10,12)。
解讀:
在省略參數“開始值”和“步長”的情況下,默認值都為1。
3、快速返回10行,12列,開始值為100的序列。
方法:
在目标單元格中輸入公式:=SEQUENCE(10,12,100)。
4、快速返回10行,12列,開始值為100,步長為5的序列。
方法:
在目标單元格中輸入公式:=SEQUENCE(10,12,100,5)。
,