第一部分:TEXT函式基礎介紹
Text函式,有人稱它是萬能函式。其實,text的宗旨就是將自定義格式體現在最終結果裡。Text函式主要是將數字轉換為文字。當然,也可以對文字進行一定的處理。
TEXT函式的語法:TEXT(value,format_text)
Value:為數值、計算結果為數字值的公式,或對包含數字值的單元格的引用。
Format_text:為“單元格格式”對話方塊中“數字”選項卡上“分類”框中的文字形式的數字格式。
text返回的一律都是文字形式的資料。如果需要計算,可以先將文字轉換為數值,然後再計算。文字型數值遇到四則運算會自動轉為數值。但文字會不參與sum之類的函式運算。
第二部分:text函式的應用
第一,基本的數字處理方式。
text函式的基本寫法:text(數值,格式)
=TEXT(12.34,"0"),含義是將數字12.34四捨五入到個位,然後以文字方式輸出結果。這個公式也可以簡寫成:text(12.34,0),當只有一個0的時候,引號可以不加。
text(數值,"0.0"),可以看到效果是保留一位小數。寫幾個0,代表想要資料形成幾位數。
“0”:數字佔位符。如果單元格的內容大於佔位符,則顯示實際數字,如果小於點位符的數量,則用0補足。例如:=text(12.34,"00000"),就顯示為:00012。
“#”:數字佔位符。只顯有意義的零而不顯示無意義的零。小數點後數字如大於“#”的數量,則按“#”的位數四捨五入。例如:“###.##”,12.1顯示為12.10;12.1263顯示為:12.13。
“G/通用格式”:以常規的數字顯示,相當於“分類”列表中的“常規”選項。
例:程式碼:“G/通用格式”。10顯示為10;10.1顯示為10.1。
另外,前導0的效果,想顯示幾位就寫幾個0,可以配合rept函式來寫,rept(字元,重複次數)。下圖就是一個為資料前面加0的效果。
第二,text在日期時間處理方面的應用。
先說說日期這種特殊的資料型別,日期“2010-3-12”,其實是數字40249,如下圖所示。
所以,=text(40249,"yyyy-mm-dd")可以顯示2010-03-12。
text是把日期所代表的真正的數字,來轉成所需要的日期格式的文字。
而20110506,要顯示2011-05-06的話,要用上面介紹的0的方法:=text(20110506,"0-00-00")。
上圖所示公式中:yyyy可以用e來代替。mm,表示顯示兩位月份,m顯示一位。中間的連線號,還可以換成其餘文字。r> text的結果是文字,如果text返回"2010-10-10"的話,再去設定格式就改變不了了。
mmm、mmmm,ddd、dddd等等都有各自的含義。ddd代表英文星期。中文的星期用aaa和aaaa。
時間裡面有個m,和月份相同,所以,單獨使用m的時候,系統預設是月份。m必須和h或s同用,才能表示分。[M]帶中括號的時候,也表示分。因為加中塊號是時間的特殊表示方式。
第三,text表示四種資料型別。
=text(資料,"正;負;零;文字")
text裡面可以表示四種資料型別。正數、負數、零與文字,用分號隔開。根據資料的型別,返回對應位置裡的格式。
沒有分號,代表一種格式。
2個分號:表示單元格為兩種格式:分號前面為正數和0;分號後面為負數。
3個分號:表示單元格為三種格式:第1部分用於正數,第2部分用於負數,第3部分用於0值。比如"0;-0;",將只顯示正數和負數,但不顯示0;最後一個分號不能省略,如果寫成"0;-0"表示的是不一樣的含義。
=text(資料,"1;2;3;@")
@是文字的萬用字元,相當於數值中的0。
=text(資料,"1;2;3;@"),相當於:if(資料>0,1,if(資料<0,2,3))
當資料大於0,返回1,小於0,返回2,等於0,返回3,是文字的話,返回其本身。根據分號內的格式自動分配。
=text(資料,"1;;;")這種,分號內沒有要顯示的格式了,結果就顯示空。也就是,當資料大於0時,顯示1,其餘顯示為空。3分號,四型別。
第四,強制符號方面的應用。
強制符號!有了它就可以強制顯示0了。大於0,顯示本身,其他顯示0。
第五,條件判斷方面的應用。
text很經典的用法就是在條件判斷方面。因為可以省字元,陣列公式中常用。條件需要用中括號括起來。這時,分號的作用就不是隔開正數、負數、零了。條件判斷的順序,是先左後右,如同if函式一樣。
第六,中文數字中的應用。
其中,用0、和不用、用d的效果不一樣。
如下圖根據小寫轉換為大寫人民幣:
第一種數字轉人民幣大寫形式的公式是:
=IF(B1<0,"金額為負無效",(IF(OR(B1=0,B1=""),"(人民幣)零元",IF(B1<1,"(人民幣)",TEXT(INT(B1),"[dbnum2](人民幣)G/通用格式")&"元"))))&IF((INT(B1*10)-INT(B1)*10)=0,IF(INT(B1*100)-INT(B1*10)*10=0,"","零"),(TEXT(INT(B1*10)-INT(B1)*10,"[dbnum2]")&"角"))&IF((INT(B1*100)-INT(B1*10)*10)=0,"整",TEXT((INT(B1*100)-INT(B1*10)*10),"[dbnum2]")&"分")
第二種數字轉人民幣大寫形式的公式是:
="大寫金額:"&IF(TRIM(B1)="","",IF(B1=0,"","人民幣"&IF(B1<0,"負",)&IF(INT(B1),TEXT(INT(ABS(B1)),"[dbnum2]")&"元",)&IF(INT(ABS(B1)*10)-INT(ABS(B1))*10,TEXT(INT(ABS(B1)*10)-INT(ABS(B1))*10,"[dbnum2]")&"角",IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)<0.1,,"零")))&IF(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),TEXT(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),"[dbnum2]")&"分","整")))
原網址
第一部分:TEXT函式基礎介紹
Text函式,有人稱它是萬能函式。其實,text的宗旨就是將自定義格式體現在最終結果裡。Text函式主要是將數字轉換為文字。當然,也可以對文字進行一定的處理。
TEXT函式的語法:TEXT(value,format_text)
Value:為數值、計算結果為數字值的公式,或對包含數字值的單元格的引用。
Format_text:為“單元格格式”對話方塊中“數字”選項卡上“分類”框中的文字形式的數字格式。
text返回的一律都是文字形式的資料。如果需要計算,可以先將文字轉換為數值,然後再計算。文字型數值遇到四則運算會自動轉為數值。但文字會不參與sum之類的函式運算。
第二部分:text函式的應用
第一,基本的數字處理方式。
text函式的基本寫法:text(數值,格式)
=TEXT(12.34,"0"),含義是將數字12.34四捨五入到個位,然後以文字方式輸出結果。這個公式也可以簡寫成:text(12.34,0),當只有一個0的時候,引號可以不加。
text(數值,"0.0"),可以看到效果是保留一位小數。寫幾個0,代表想要資料形成幾位數。
“0”:數字佔位符。如果單元格的內容大於佔位符,則顯示實際數字,如果小於點位符的數量,則用0補足。例如:=text(12.34,"00000"),就顯示為:00012。
“#”:數字佔位符。只顯有意義的零而不顯示無意義的零。小數點後數字如大於“#”的數量,則按“#”的位數四捨五入。例如:“###.##”,12.1顯示為12.10;12.1263顯示為:12.13。
“G/通用格式”:以常規的數字顯示,相當於“分類”列表中的“常規”選項。
例:程式碼:“G/通用格式”。10顯示為10;10.1顯示為10.1。
另外,前導0的效果,想顯示幾位就寫幾個0,可以配合rept函式來寫,rept(字元,重複次數)。下圖就是一個為資料前面加0的效果。
第二,text在日期時間處理方面的應用。
先說說日期這種特殊的資料型別,日期“2010-3-12”,其實是數字40249,如下圖所示。
所以,=text(40249,"yyyy-mm-dd")可以顯示2010-03-12。
text是把日期所代表的真正的數字,來轉成所需要的日期格式的文字。
而20110506,要顯示2011-05-06的話,要用上面介紹的0的方法:=text(20110506,"0-00-00")。
上圖所示公式中:yyyy可以用e來代替。mm,表示顯示兩位月份,m顯示一位。中間的連線號,還可以換成其餘文字。r> text的結果是文字,如果text返回"2010-10-10"的話,再去設定格式就改變不了了。
mmm、mmmm,ddd、dddd等等都有各自的含義。ddd代表英文星期。中文的星期用aaa和aaaa。
時間裡面有個m,和月份相同,所以,單獨使用m的時候,系統預設是月份。m必須和h或s同用,才能表示分。[M]帶中括號的時候,也表示分。因為加中塊號是時間的特殊表示方式。
第三,text表示四種資料型別。
=text(資料,"正;負;零;文字")
text裡面可以表示四種資料型別。正數、負數、零與文字,用分號隔開。根據資料的型別,返回對應位置裡的格式。
沒有分號,代表一種格式。
2個分號:表示單元格為兩種格式:分號前面為正數和0;分號後面為負數。
3個分號:表示單元格為三種格式:第1部分用於正數,第2部分用於負數,第3部分用於0值。比如"0;-0;",將只顯示正數和負數,但不顯示0;最後一個分號不能省略,如果寫成"0;-0"表示的是不一樣的含義。
=text(資料,"1;2;3;@")
@是文字的萬用字元,相當於數值中的0。
=text(資料,"1;2;3;@"),相當於:if(資料>0,1,if(資料<0,2,3))
當資料大於0,返回1,小於0,返回2,等於0,返回3,是文字的話,返回其本身。根據分號內的格式自動分配。
=text(資料,"1;;;")這種,分號內沒有要顯示的格式了,結果就顯示空。也就是,當資料大於0時,顯示1,其餘顯示為空。3分號,四型別。
第四,強制符號方面的應用。
強制符號!有了它就可以強制顯示0了。大於0,顯示本身,其他顯示0。
第五,條件判斷方面的應用。
text很經典的用法就是在條件判斷方面。因為可以省字元,陣列公式中常用。條件需要用中括號括起來。這時,分號的作用就不是隔開正數、負數、零了。條件判斷的順序,是先左後右,如同if函式一樣。
第六,中文數字中的應用。
其中,用0、和不用、用d的效果不一樣。
如下圖根據小寫轉換為大寫人民幣:
第一種數字轉人民幣大寫形式的公式是:
=IF(B1<0,"金額為負無效",(IF(OR(B1=0,B1=""),"(人民幣)零元",IF(B1<1,"(人民幣)",TEXT(INT(B1),"[dbnum2](人民幣)G/通用格式")&"元"))))&IF((INT(B1*10)-INT(B1)*10)=0,IF(INT(B1*100)-INT(B1*10)*10=0,"","零"),(TEXT(INT(B1*10)-INT(B1)*10,"[dbnum2]")&"角"))&IF((INT(B1*100)-INT(B1*10)*10)=0,"整",TEXT((INT(B1*100)-INT(B1*10)*10),"[dbnum2]")&"分")
第二種數字轉人民幣大寫形式的公式是:
="大寫金額:"&IF(TRIM(B1)="","",IF(B1=0,"","人民幣"&IF(B1<0,"負",)&IF(INT(B1),TEXT(INT(ABS(B1)),"[dbnum2]")&"元",)&IF(INT(ABS(B1)*10)-INT(ABS(B1))*10,TEXT(INT(ABS(B1)*10)-INT(ABS(B1))*10,"[dbnum2]")&"角",IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)<0.1,,"零")))&IF(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),TEXT(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),"[dbnum2]")&"分","整")))
原網址