我正在尝试在excel中将一个数字转换成十进制的英尺。这是我的公式
=IF(C2="", "",ROUND(LEFT(C2,FIND("-",C2)-2)+SUBSTITUTE(REPLACE(C2,1,FIND("-",C2),""),CHAR(34),"")/12,4))
如果单元格C2为41-9,则返回4.75。除非excel自动将单元格c2更改为8-8之类的日期,否则可以正常工作。有什么想法吗?
发布于 2018-02-20 04:43:03
在输入值之前,将C2格式化为文本。那么它就不会转换为日期。
但您的公式仍然不起作用,因为它不能很好地处理英尺度量的个位数。单个数字将导致Left()
函数产生空白文本,这会在将该空白文本添加到所提取的替换位的编号上时导致错误。
在Left()
周围包装一个N()
函数,这将把一个空结果变成一个零,然后公式就可以工作了(假设单元格格式是文本,而不是日期)。
=IF(C2="", "",ROUND(N(LEFT(C2,FIND("-",C2)-2))+SUBSTITUTE(REPLACE(C2,1,FIND("-",C2),""),CHAR(34),"")/12,4))
https://stackoverflow.com/questions/48871779
复制相似问题