我需要使用自定义数字格式或类似的东西来创建真正的空白,而不仅仅是让它在 Excel 单元格中以不同的方式显示。这是因为我实际上正在使用一个名为 SpreadsheetGear 的实现 Excel 功能的库,而我的最终输出是一个字符串。
这就是我要的:
当数字为 6 位或更少时,我希望它具有如下格式:
$ xxx,xxx
$ xx,xxx
$ x,xxx
$ xxx
$ xx
$ x
如上所示,6 位数字的“$”和第一位数字之间有 2 个空格,5 位数字的“$”和第一位数字之间有 3 个空格,等等。
换句话说,对于 6 位或更少的数字,数字字符的长度始终相同。
对于超过 6 位数字,只需使用逗号进行正常数字格式化。
答案1
如果您不介意将格式化的版本存储在单独的列中并以字符串而不是数字的形式存储,则可以使用(假设值在单元格 A1 中):
="$"&REPT(" ", 9-LEN(TEXT(A1,"#,##0")))&TEXT(A1,"#,##0")
像这样格式化的结果使用固定宽度字体看起来效果最佳。
答案2
您可以将条件格式 (techie007) 与自定义格式结合使用。
例如,选择单元格范围并选择选项“突出显示单元格规则”>“小于......”
输入10000000
(最高 6 位数字是 999,999)作为条件,输入格式为“自定义”。
在弹出的对话框中,转到数字格式、自定义格式并使用$* #,##0
。
答案3
你要找的是“重复字符语法”。在美元符号
( ) 和数字格式之间放置一个星号 ( ) 和一个空格,这样美元符号就位于左侧,数字就位于右侧(空格是重复的字符)。*$
"$* 0" or "$* #,##0"
这也适用于格式化日期。月份左侧和日期右侧将是:
"mmmm* d"
答案4
创建 6 种条件格式,如下所示:
最后一个条件格式在屏幕截图中不可见,只需添加一个零。
将其自定义数字格式设置为以下内容,按照以下顺序从上到下进行:
$_0_0_0_0_0_0_0_,#
$_0_0_0_0_0_0_,#
$_0_0_0_0_0_,#
$_0_0_0_0#,###
$_0_0_0#,###
$_0_0#,###
前三个还为缺失的逗号分配了空间。
最终结果: