今天來說說transpose這個(gè)函數(shù),它的作用是轉(zhuǎn)置單元格區(qū)域,也就是行列互轉(zhuǎn)。
-01-
函數(shù)說明
1.函數(shù)語法結(jié)構(gòu)
transpose函數(shù)可以對工作表的單元格區(qū)域或數(shù)組進(jìn)行轉(zhuǎn)置,實(shí)現(xiàn)行列互轉(zhuǎn)。比如一個(gè)區(qū)域或數(shù)組是2行4列,可以轉(zhuǎn)為4行2列。語法結(jié)構(gòu)如下,有1個(gè)參數(shù)。
TRANSPOSE(array)
array 必須 可以是單元格區(qū)域或數(shù)組。
-02-
示例解釋
如下圖所示,將左邊A1:B4這個(gè)4行2列的區(qū)域轉(zhuǎn)為右邊2行4列的區(qū)域。也就把第一個(gè)區(qū)域的第1行轉(zhuǎn)為第二個(gè)區(qū)域的第1列;第一個(gè)區(qū)域的第2行轉(zhuǎn)為第二個(gè)區(qū)域的第2列,以此類推,全部轉(zhuǎn)完。
如果要把轉(zhuǎn)置后的結(jié)果輸出到多單元格中,那么要執(zhí)行幾步操作。
第1步,選擇一個(gè)區(qū)域,這個(gè)區(qū)域的尺寸是有規(guī)定的,行數(shù)等于原區(qū)域的列數(shù),列數(shù)等于原區(qū)域的行數(shù),如下圖所示。
第2步,在選中區(qū)域的情況下,輸入公式=TRANSPOSE(A1:B4),如下圖所示。
第3步,按ctrl+shift+enter,如下圖所示。可以看到編輯欄中的公式加了大括號{}。
-03-
具體應(yīng)用
1.統(tǒng)計(jì)70分到80分的個(gè)數(shù)
如下圖所示,左邊是個(gè)成績表,在右邊統(tǒng)計(jì)出70分到80分的個(gè)數(shù)。B列的分?jǐn)?shù)是隨機(jī)數(shù),按F9會自動變化;并且設(shè)置了條件格式,將70分到80分的標(biāo)記出來。在D9單元格中輸入公式=SUM(--(B9:B17=TRANSPOSE(ROW(70:80)))),按ctrl+shift+enter三鍵。
如果你不懂這個(gè)公式也沒關(guān)系。先說下思路:將每個(gè)分?jǐn)?shù)分別與70,71,72,73,74,75,76,77,78,79,80做比較,看看它們是不是相等。相等的返回true,不相等的返回false。最后將條件成立的全部加起來。實(shí)際上就是方向不同的一維數(shù)組的運(yùn)算,如下圖所示。
那么現(xiàn)在的問題就是70-80這個(gè)橫向數(shù)組怎么構(gòu)造?如果用column的話,70-80對應(yīng)的字母是多少?你要找的話是不是很麻煩。
這里就用到row和transpose的組合,先用row(70:80)構(gòu)建一個(gè)縱向的一維數(shù)組,然后用transpose將其轉(zhuǎn)為橫向的一維數(shù)組。你可以輸入=TRANSPOSE(ROW(70:80)),查看是不是變成橫向一維數(shù)組了。
后面就是將方向不同的一維數(shù)組進(jìn)行運(yùn)算,得到上圖的二維數(shù)組,用負(fù)負(fù)將邏輯值轉(zhuǎn)為0或1,最后用sum求和,完成。
2.提取數(shù)字
如下圖所示,A列是一些字符串,要求將其中的數(shù)字提取出來。在B24單元格中輸入公式=MAX(IFERROR(--MID(A24,ROW($1:$20),TRANSPOSE(ROW($1:$20))),)),按ctrl+shift+enter三鍵,向下填充。
可以看到mid函數(shù)的第2參數(shù)和第3參數(shù)都是用的數(shù)組,ROW($1:$20)是縱向的一維數(shù)組,TRANSPOSE(ROW($1:$20))是將縱向的一維數(shù)組轉(zhuǎn)成橫向的一維數(shù)組,這樣mid函數(shù)就會得到一個(gè)二維數(shù)組。
思路是這樣的:在每個(gè)單元格中,從第1位開始提取,提取1位,2位···一直到20位;然后從第2位開始提取1位,2位···一直到20位;以此類推,直到從第20位開始提取1位,2位···一直到20位,構(gòu)成一個(gè)二維數(shù)組。
然后對這個(gè)二維數(shù)組進(jìn)行負(fù)負(fù)運(yùn)算,這樣文本轉(zhuǎn)為錯誤值,文本型數(shù)字轉(zhuǎn)為數(shù)字;用iferror將錯誤值轉(zhuǎn)為0,最后用max取最大值,完成。
如果對你有所幫助或啟發(fā),請打賞或分享一下,你的支持就是我最大的動力!此公眾號沒有留言功能,如果有問題可以發(fā)到郵箱715704566@qq.com,有時(shí)間會回復(fù)的。
聯(lián)系客服