2011年4月18日 星期一

Excel-查詢單字中各個字母的數量

如果想要在 Excel 中查詢單字中各個字母的數量(如下圖),該如何處理?首先來看看如何產生A欄的內容。

儲存格A2:=CHAR(ROW(65:65))&", "&CHAR(ROW(97:97))

因為A的ASCII碼為65,a的ASCII碼為97,所以複製儲存格A2,往下貼上時,即可產生A,B,C,D,…及a,b,c,d,…。

以查詢Windows為例來查詢是否有 d 這個字母,可以藉由SUBSTITUTE函數:

=SUBSTITUTE("Windows","w","") = “Windos” (w被空白取代了) 

SUBSTITUTE 函數:將文字字串中的 old_text 部分以新字串 new_text 取代。

語法:SUBSTITUTE(text, old_text, new_text, [instance_num])

Text:要取代字元的文字,或含有該文字之儲存格的參照。

Old_text:要取代的文字。

New_text:要用來取代 Old_text 的文字。

Instance_num:指定要將第幾個 Old_text 取代為 New_text

 

=SUBSTITUTE(SUBSTITUTE("Windows","w","") ,"W","")

=SUBSTITUTE("Windos","W","")

="indos" (W被空白取代了)

LEN("Windows")-LEN(SUBSTITUTE(SUBSTITUTE("Windows","w","") ,"W",""))

=LEN("Windows")-LEN(“indos")

=7-5

=2 (表示有2個W或w字母)

所以:

儲存格B2:=LEN(B$1)-LEN(SUBSTITUTE(SUBSTITUTE(B$1,CHAR(ROW(65:65)),""),CHAR(ROW(97:97)),""))

複製儲存格B2至儲存格B2:F27,即可求出所有的字母所佔的數量。

如果想要將沒有任何字母的位置,不要顯示0,而以空白顯示,則可以改為下列式子:

儲存格B2:=IF((LEN(B$1)-LEN(SUBSTITUTE(SUBSTITUTE(B$1,CHAR(ROW(65:65)),""),CHAR(ROW(97:97)),"")))=0,"",LEN(B$1)-LEN(SUBSTITUTE(SUBSTITUTE(B$1,CHAR(ROW(65:65)),""),CHAR(ROW(97:97)),"")))

其實如果以這個例子是不分大寫者,可以先將其改為大寫或小寫再套入原來的式子:

儲存格B2:=LEN(B$1)-LEN(SUBSTITUTE(UPPER(B$1),CHAR(ROW(65:65)),""))

儲存格B2:=LEN(B$1)-LEN(SUBSTITUTE(LOWER(B$1),CHAR(ROW(97:97)),""))

沒有留言:

張貼留言

好康東東