Excel 使用禁止字符格式化数字

Excel 使用禁止字符格式化数字,excel,excel-formula,formatting,Excel,Excel Formula,Formatting,将值格式化为显示单位可增加清晰度,同时将数值保留在单元格中。这可以通过以下方式实现: =文本(1000,#,#####千瓦) 或通过“格式设置”对话框:设置单元格格式>编号>类别自定义 但两种方法都不允许使用某些字符。如何对“kWh”或“kWh/yr”等单位执行此操作,而不将值转换为文本类型,从而防止在计算中使用该值?将字符串括在引号内,或对每个字符进行“转义” 例如:,\k\W\h 或者:,####“kWh” (用作自定义数字格式,或用作TEXT函数的格式参数) 编辑:由于@SOlsen的问题

将值格式化为显示单位可增加清晰度,同时将数值保留在单元格中。这可以通过以下方式实现:

=文本(1000,#,#####千瓦)

或通过“格式设置”对话框:设置单元格格式>编号>类别自定义


但两种方法都不允许使用某些字符。如何对“kWh”或“kWh/yr”等单位执行此操作,而不将值转换为文本类型,从而防止在计算中使用该值?

将字符串括在引号内,或对每个字符进行“转义”

例如:
,\k\W\h

或者:
,####“kWh”

(用作自定义数字格式,或用作
TEXT
函数的格式参数)


编辑:由于@SOlsen的问题,我要补充一点,如果在text函数中使用引号格式,则需要在包含的引号上加倍。

…是的,这适用于自定义数字格式(这是我建议的),但作为text()函数的一部分,这将如何工作?文本函数不会接受您显示的参数(整个格式参数需要加引号)。您可以将其输入为=text(1000,#,#####kWh),但正如OP所指出的,结果被视为文本,而不是所需的数字。我只是想知道我是否遗漏了一些我不知道的东西。@SOlson是的,你遗漏了一些东西。若要使用“带引号的引号”,您可以“加倍”(Excel中的例行程序,所以我忽略了提及它)。:
=TEXT(1000,“,”kWh“)
,转义方法甚至不需要包含引号:
=TEXT(1000,”,”k\W\h”)
我将在我的答案中添加这一警告。是的,它以kWh显示,但作为文本。假设你把它放在单元格A1中,然后在单元格B1中,你试着把它乘以2…你得到一个#值!错误,因为它被视为文本(通过在单元格B1中输入
=istext(A1)
进行验证)。所以,这就是我所说的,它不能满足在计算中使用数值的运算要求……它只是一个文本值,你必须用类似于
=value(LEFT(A1,FIND(“,A1))
的内容对其进行强制转换,作为该点之后计算的一部分。@SOlson说得好。我假设
=TEXT()
的唯一逻辑输出是文本类型。甚至
=TEXT(1000,“#,####”
都是文本。我想我过去忽略了这一点,因为在没有任何附加格式的情况下,Excel仍然能够推断出数值并允许在计算中使用。@SOlson我不明白你想表达的意思。当然,如果您希望它作为一个数字,您可以使用该格式作为自定义数字格式(根据OP的要求)。如果您希望将其作为文本(例如作为引用该单元格的较长字符串的一部分),则可以使用
text
函数。这是Excel的基本用法。