|
接著來說文本函數(shù),今天講2個可以互轉(zhuǎn)的函數(shù),那就是char和code。char函數(shù)返回對應(yīng)于數(shù)字代碼的字符。code函數(shù)返回文本字符串中第一個字符的數(shù)字代碼。 可以簡單理解為:在excel中,一個數(shù)字代碼對應(yīng)一個字符。比如數(shù)字代碼10對應(yīng)的字符為換行符。我們??吹降腸har(10)就是用char返回數(shù)字代碼10對應(yīng)的字符,也就是換行符。 而code函數(shù)是返回文字字符串中第一個字符的數(shù)字代碼。如code("愛你")返回的就是“愛”對應(yīng)的數(shù)字代碼45230。你寫個char(45230)就返回“愛”。 -01- 函數(shù)說明 CHAR 函數(shù)語法如下,只有一個參數(shù): CHAR(number) Number 必需。 介于 1 到 255 之間的數(shù)字,指定所需的字符。 使用的是當(dāng)前計(jì)算機(jī)字符集中的字符。盡管官方說明是1到255的數(shù)字,實(shí)際上不止。而且還支持?jǐn)?shù)組。 -02- 示例解釋 下面是數(shù)字代碼對應(yīng)的字符,我截了3張圖,給你參考下,你可以自己測試下。 -03- 具體應(yīng)用 1.將一行轉(zhuǎn)為多行多列 要將第1行的“我要學(xué)函數(shù)!”轉(zhuǎn)化成下面多行多列的表格。之前我們說過單列轉(zhuǎn)多行多列,用的是indirect這個函數(shù)。現(xiàn)在這個也是用indirect。首先要像最下面的表格一樣,把單元格地址寫出來。 我們發(fā)現(xiàn)它的字母都不一樣,該怎么樣用函數(shù)實(shí)現(xiàn)這樣的單元格地址呢?這就用到char和code,我們知道每個字符都有1個數(shù)字代碼,先用code查找A的數(shù)字代碼發(fā)現(xiàn)是65。B是66,C是67,。。。這樣就可以轉(zhuǎn)化為下表。 這樣是不是就和以前的單列轉(zhuǎn)多行多列差不多了,用row和column構(gòu)建這樣的數(shù)字。在任意空白單元格輸入公式=COLUMN(A1)+64+ROW(A1)*3-3,向右向下拖動,就構(gòu)建出上面的數(shù)字。 再用char轉(zhuǎn)化為對應(yīng)的字符,公式為=CHAR(COLUMN(A1)+64+ROW(A1)*3-3)。如下圖。 再&1,最后套個indirect結(jié)果就出來了,如下圖。公式為=INDIRECT(CHAR(COLUMN(A1)+64+ROW(A1)*3-3)&1)。 如果你對這個不熟悉,請看之前的indirect的那篇文章。用慣了之后你就會喜歡的indirect函數(shù) 2.計(jì)算一個單元格中不重復(fù)字符的個數(shù)。 A列中是一些字符串,如果有的字符重復(fù)出現(xiàn),只算做1個。比如第一個abcd出現(xiàn)2次,最后只算做4個字符。 現(xiàn)在我給出2種解法,第一種公式比較長,在B13單元格中輸入公式=SUM(N(FIND(MID(A13,ROW(INDIRECT("1:"&LEN(A13))),1),A13)=ROW(INDIRECT("1:"&LEN(A13))))),按ctrl+shift+enter三鍵,向下拖動。這個公式我就不講解了。 第2種用char函數(shù),公式也短。在C13單元格中輸入公式=COUNT(FIND(CHAR(ROW(A:A)),A13)),同樣按ctrl+shift+enter三鍵,向下拖動。 ROW(A:A)是A列中所有的行號,CHAR(ROW(A:A))是將A列中所有的行號返回對應(yīng)的字符,這些字符都是唯一的,也就是不會重復(fù)出現(xiàn)的,并且包括所有的字符。 FIND(CHAR(ROW(A:A)),A13)是在A13單元格中找上面的那些字符,找到的返回1個數(shù)字,找不到的返回錯誤值。COUNT(FIND(CHAR(ROW(A:A)),A13))是統(tǒng)計(jì)數(shù)字的個數(shù),數(shù)字的個數(shù)就是要算的不重復(fù)的個數(shù)。 關(guān)于code的用法我這里就不再講了,會用char就會用code。好了,今天的2個函數(shù)就講到這里,你學(xué)會了嗎? |
|
|