faliming7 发表于 2011-6-21 10:30

[原创]自定义格式还有秘密

EXCEL经常会给我们带来惊喜,半年前我曾仔细测试“自义定格式代码”,又发现一些有用的东东。如A1单元格有数字“123”,B1输入公式“=TEXT(A1,"[$-404]G/通用格式")”,结果为“一百二十三”。如果公式为“=TEXT(A1,"[$-404]G/通用格式")”,得到的结果为“壹佰貳拾參”。公式改为“=TEXT(A1,"[$-404]G/通用格式")”,得到的结果为“1百2十3”,其中的代码对应关系为:

123DBNUM1DBNUM2DBNUM3
404一百二十三壹佰貳拾參1百2十3
411百二十三壱百弐拾参百2十3
412一百二十三壹百貳拾參百2十3
804一百二十三壹佰贰拾叁1百2十3
10000一百二十三壹佰贰拾叁1百2十3
10404一百二十三壹佰貳拾參1百2十3
10411百二十三壱百弐拾参百2十3
10412一百二十三壹百貳拾參百2十3
10804一百二十三壹佰贰拾叁1百2十3
20000一百二十三壹佰贰拾叁1百2十3
20404一百二十三壹佰貳拾參1百2十3
20411百二十三壱百弐拾参百2十3
20412一百二十三壹百貳拾參百2十3
20804一百二十三壹佰贰拾叁1百2十3
11000000፩፪፫፩፪፫፩፪፫
27000000일백이십삼일백이십삼일백이십삼

以上代码中404,411都很有意义,比如10-19之间的数值转换为大写,用公式“=TEXT(A1,"[$-411]g/通用格式")”,得到的是“十,十一,十二……十九”,而不是“一十,一十一,一十二……一十九”。代码11000000可在制作表格时按数值或日期位置制作方格,而不再用插入符号了代码27000000可得到韓语数值。

faliming7 发表于 2011-6-21 10:30

本帖最后由 faliming7 于 2011-6-21 10:35 编辑

如果A1单元格是个日期“1972-1-28”,B1输入公式“=TEXT(A1,"[$-1030000]YYYY年M月D")”,结果为“47年1月28”。如果公式为“=TEXT(A1,"[$-1030000]YYYY年M月D日")”,结果为“33年1月0日”。代码对应关系如下:
1972-1-28 DBNUM1DBNUM2DBNUM3
103000047年1月2833年1月0日33年1月0日33年1月0日
103999947年1月2833年1月0日33年1月0日33年1月0日
3000047年1月28三十三年一月○日叁拾叁年壹月零日33年1月0日
3999947年1月2833年1月0日33年1月0日33年1月0日
600001391年12月12一三一七年八月二十九日壹叁壹柒年捌月贰拾玖日1317年8月29日
699991391年12月121317年8月29日1317年8月29日1317年8月29日
1700001972年1月28一九○○年一月○日壹玖零零年壹月零日1900年1月0日
1799991972年1月281900年1月0日1900年1月0日1900年1月0日
9700001972年1月28一九○○年一月○日壹玖零零年壹月零日1900年1月0日
9799991972年1月281900年1月0日1900年1月0日1900年1月0日
11700001972年1月281900年1月0日1900年1月0日1900年1月0日
11799991972年1月281900年1月0日1900年1月0日1900年1月0日
19700001972年1月281900年1月0日1900年1月0日1900年1月0日
19799991972年1月281900年1月0日1900年1月0日1900年1月0日
800001972年1月28一九○○年一月○日壹玖零零年壹月零日1900年1月0日
899991972年1月281900年1月0日1900年1月0日1900年1月0日
8800001972年1月28一九○○年一月○日壹玖零零年壹月零日1900年1月0日
8899991972年1月281900年1月0日1900年1月0日1900年1月0日
1000001972年1月28一九○○年一月○日壹玖零零年壹月零日1900年1月0日
1099991972年1月281900年1月0日1900年1月0日1900年1月0日
9000001972年1月28一九○○年一月○日壹玖零零年壹月零日1900年1月0日
9099991972年1月281900年1月0日1900年1月0日1900年1月0日
19000001972年1月281900年1月0日1900年1月0日1900年1月0日
19099991972年1月281900年1月0日1900年1月0日1900年1月0日
1100001972年1月28一九○○年一月○日壹玖零零年壹月零日1900年1月0日
1399991972年1月281900年1月0日1900年1月0日1900年1月0日
9100001972年1月28一九○○年一月○日壹玖零零年壹月零日1900年1月0日
9399991972年1月281900年1月0日1900年1月0日1900年1月0日
19100001972年1月281900年1月0日1900年1月0日1900年1月0日
19399991972年1月281900年1月0日1900年1月0日1900年1月0日
11000001972年1月281900年1月0日1900年1月0日1900年1月0日
11099991972年1月281900年1月0日1900年1月0日1900年1月0日
11100001972年1月281900年1月0日1900年1月0日1900年1月0日
11399991972年1月281900年1月0日1900年1月0日1900年1月0日
2000000١٩٧٢年١月٢٨١٩٠٠年١月٠日١٩٠٠年١月٠日١٩٠٠年١月٠日
3999999۱۹۷۲年۱月۲۸۱۹۰۰年۱月۰日۱۹۰۰年۱月۰日۱۹۰۰年۱月۰日
4000000१९७२年१月२८१९००年१月०日१९००年१月०日१९००年१月०日
4999999१९७२年१月२८१९००年१月०日१९००年१月०日१९००年१月०日
5000000১৯৭২年১月২৮১৯০০年১月০日১৯০০年১月০日১৯০০年১月০日
5999999১৯৭২年১月২৮১৯০০年১月০日১৯০০年১月০日১৯০০年১月০日
6000000੧੯੭੨年੧月੨੮੧੯੦੦年੧月੦日੧੯੦੦年੧月੦日੧੯੦੦年੧月੦日
6999999੧੯੭੨年੧月੨੮੧੯੦੦年੧月੦日੧੯੦੦年੧月੦日੧੯੦੦年੧月੦日
7000000૧૯૭૨年૧月૨૮૧૯૦૦年૧月૦日૧૯૦૦年૧月૦日૧૯૦૦年૧月૦日
7999999૧૯૭૨年૧月૨૮૧૯૦૦年૧月૦日૧૯૦૦年૧月૦日૧૯૦૦年૧月૦日
8000000୧୯୭୨年୧月୨୮୧୯୦୦年୧月୦日୧୯୦୦年୧月୦日୧୯୦୦年୧月୦日
8999999୧୯୭୨年୧月୨୮୧୯୦୦年୧月୦日୧୯୦୦年୧月୦日୧୯୦୦年୧月୦日
9000000௧௯௭௨年௧月௨௮௧௯00年௧月0日௧௯00年௧月0日௧௯00年௧月0日
9999999௧௯௭௨年௧月௨௮௧௯00年௧月0日௧௯00年௧月0日௧௯00年௧月0日
10000000၁၉၇၂年၁月၂၈၁၉၀၀年၁月၀日၁၉၀၀年၁月၀日၁၉၀၀年၁月၀日
11000000፩፱፯፪年፩月፪፰፩፱00年፩月0日፩፱00年፩月0日፩፱00年፩月0日
200000001972年1月281900年1月0日1900年1月0日1900年1月0日
209999991972年1月281900年1月0日1900年1月0日1900年1月0日
21000000一九七二年一月二十八一九○○年一月○日一九○○年一月○日一九○○年一月○日
21999999一九七二年一月二十八一九○○年一月○日一九○○年一月○日一九○○年一月○日
22000000壹玖柒貳年壹月貳拾捌壹玖零零年壹月零日壹玖零零年壹月零日壹玖零零年壹月零日
22999999壹玖柒貳年壹月貳拾捌壹玖零零年壹月零日壹玖零零年壹月零日壹玖零零年壹月零日
230000001972年1月281900年1月0日1900年1月0日1900年1月0日
239999991972年1月281900年1月0日1900年1月0日1900年1月0日
24000000一九七二年一月二十八一九00年一月0日一九00年一月0日一九00年一月0日
24999999一九七二年一月二十八一九00年一月0日一九00年一月0日一九00年一月0日
25000000壹九七貳年壹月貳拾八壹九零零年壹月零日壹九零零年壹月零日壹九零零年壹月零日
25999999壹九七貳年壹月貳拾八壹九零零年壹月零日壹九零零年壹月零日壹九零零年壹月零日
260000001972年1月281900年1月0日1900年1月0日1900年1月0日
269999991972年1月281900年1月0日1900年1月0日1900年1月0日
27000000일구칠이年일月이십팔일구영영年일月영日일구영영年일月영日일구영영年일月영日
27999999일구칠이年일月이십팔일구영영年일月영日일구영영年일月영日일구영영年일月영日
280000001972年1月281900年1月0日1900年1月0日1900年1月0日
289999991972年1月281900年1月0日1900年1月0日1900年1月0日
290000001972年1月281900年1月0日1900年1月0日1900年1月0日
299999991972年1月281900年1月0日1900年1月0日1900年1月0日
300000001972年1月281900年1月0日1900年1月0日1900年1月0日
309999991972年1月281900年1月0日1900年1月0日1900年1月0日
310000001972年1月281900年1月0日1900年1月0日1900年1月0日
319999991972年1月281900年1月0日1900年1月0日1900年1月0日
320000001972年1月281900年1月0日1900年1月0日1900年1月0日
329999991972年1月281900年1月0日1900年1月0日1900年1月0日
330000001972年1月281900年1月0日1900年1月0日1900年1月0日
339999991972年1月281900年1月0日1900年1月0日1900年1月0日
340000001972年1月281900年1月0日1900年1月0日1900年1月0日
349999991972年1月281900年1月0日1900年1月0日1900年1月0日

faliming7 发表于 2011-6-21 10:30

本帖最后由 faliming7 于 2011-6-21 10:38 编辑

以上代码中,如30000-39999之间产生的结果是一样的。其他也是如此,可以看出,这些代码不仅数字如1,2,3,4等代表着不同的含义,而且似乎与代码数字所处的位置有关。测试发现代码最长为8位。这些代码所产生的日期很多令我莫名其妙,不知道是什么日期,但这些代码在2007和2010版中又会产生不同的结果。有些结果十分令人振奋。如110000-139999,910000-939999,1910000-1939999,1110000-1139999之间的代码都产生阴历日期,其他有些代码与2003版产生的结果不同,但目前不知道是什么日期。(注:=TEXT(NOW(),"[$-130000]yyyy年m月d日")产生阴历日期曾由luxueyan2008于
2008-5-30 13:05报道,链接地址为:http://www.excelpx.com/thread-54853-1-1.html) 包括曾有人报出的“=TEXT(A1,"[$-f800]")”得到结果“1972年1月28日星期五”;B代表佛历;以及显示日本年历等等,EXCEL自定义格式似乎有无数的秘密还未开发。 猜测,代码中不同的数字有不同的含义,数字所处的位置有不同的含义,在亚洲版本中,微软有意用自定义格式显示出亚洲不同国家的年历,但是这些东西微软并未公布,个人猜想可能是微软某些程序员的不成熟作品。

faliming7 发表于 2011-6-21 10:30

占位

过儿 发表于 2011-6-21 11:23

好贴啊

liuts 发表于 2011-6-21 12:36

法老师的钻研精神,佩服啊{:1_1:}

lotte 发表于 2011-6-21 13:17

这钻研精神,佩服!

单车代步 发表于 2011-6-21 13:36

{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}

ljzzlan 发表于 2011-6-21 18:45

好资料,收藏了先!谢谢

sunjing-zxl 发表于 2011-6-21 20:34

好东西 先收藏
页: [1] 2 3 4 5 6 7 8
查看完整版本: [原创]自定义格式还有秘密