作者A1pha ([αλφα])
看板Office
标题[算表] 请问一个数字转文字的问题
时间Wed Aug 14 01:09:13 2024
软体:
EXCEL 365
版本:
365
(更新:已研究出解法,写在推文区。)
请问大家一个数字转文字的问题……
就是啊,我最近遇到数字转文字的瓶颈,
就是我要把数字转成文字去用VLOOKUP查表,
(表里面的资料是文字,用数字去VLOOKUP会查不到东西,N/A)
但是遇到一个问题,在数字转换文字的过程中,
没法找到一个同时能分别6208跟006208的方法。
我的公式若采用:=VLOOKUP(TEXT([@代号],"0"),tblStockList,2,FALSE)
那代号那边若是006208,那麽TEXT([@代号],"0")会转出6208,
以致於VLOOKUP在查表的时候会找错资料,
查到6208那笔而非006208那笔。
不知道函式有没有办法可以修改成能辨别上述两笔资料的方法?
或是有什麽方法可以直接预设输入数字时,就直接是文字?
我试过数字格式下拉选单那边格式改「文字」,
https://i.meee.com.tw/z1Uqi7j.png
但是没用,输入数字进去他还是会预设那是数字,
因为用=VLOOKUP([@代号],tblStockList,2,FALSE)
不转换直接查还是会查不到东西,
表示下拉选单那边改格式其实没有用,内容还是数字格式,
除非我在输入的时候数字前面刻意加上「'」,他才会强制变文字,
直接VLOOKUP才会查得到。
不知道有没有办法可以直接设定好,预设输入就直接是文字,不用再强制转换?
感谢大家QQ
--
话说2007年BraDLey被DFA到教士後,放话炮轰豆爷。
传说於97年上任的豆爷是这回答的...
豆:
Guys like Milton BraDLey...What? So what?
Who are you? Who are you Milton BraDLey
to try to test Billy Beane a proven GM for 10 years?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.166.35.235 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1723568956.A.067.html
1F:→ rafaiero: 阵列及加入len判断? 08/14 16:06
2F:→ A1pha: 正在开车,突然想到,可能可以用indirect解……等回到家试 08/14 16:55
3F:→ A1pha: 试看 08/14 16:55
回家之後,我试了一下,我发现我的想法是对的,但是用INDIRECT无法实现,
後来是用CONCATENATE实现的。
我的想法很简单,就是既然直接用参照储存格会参照到数字,
那我就把他「黏上」引号,他不就变成文字了吗?
也就是直接在VLOOKUP里面直接黏「"006208"」进去就好。
概念上就是「"&[@代号]&"」把上下引号黏在参照上,变成文字让VLOOKUP找。
但是中间有点小离奇,
就是CONCATENATE(Char(34),[@代号],Char(34))放在VLOOKUP公式里,
不知道为什麽会变成「""""[@代号]""""」使得VLOOKUP找不到,
(明明不放在其他公式里面的时候会正常显示「"006208"」)
反而直接CONCATENATE([@代号]) 就可以达到我的目的。
所以我最终解法如下:
VLOOKUP(CONCATENATE([@代号]),tblStockList,2,FALSE)
就可以解决用TEXT转换,前面00不见的问题。
谢谢大家观看。
4F:→ A1pha: 对喔,判断代码长度,来决定text转换要用什麽格式也是一种 08/14 16:58
5F:→ A1pha: 解法,感谢楼上提点。 08/14 16:58
P.S.
这个後来我没有测试,但是应该可行,
就是用TEXT转换,第二个参数可以调整显示位数,
例如:TEXT(6208,"000000") 会显示「006208」
所以只要用LEN函数号判断[@代号]里面位数,
再根据位数调整TEXT第二参数的格式,应该也可以解出来。
这边补充~
※ 编辑: A1pha (118.166.35.235 台湾), 08/15/2024 00:33:18
※ 编辑: A1pha (118.166.35.235 台湾), 08/15/2024 00:36:14