如果列中的所有值都是一位数,则将 % 值显示为“+-ONESPACE-1.00%”,如果有两位数,则显示“+-TWOSPACES-1.00%”

Posted

技术标签:

【中文标题】如果列中的所有值都是一位数,则将 % 值显示为“+-ONESPACE-1.00%”,如果有两位数,则显示“+-TWOSPACES-1.00%”【英文标题】:Display % values as "+-ONESPACE-1.00%" when all values in column are one-digit and "+-TWOSPACES-1.00%" if there are two-digit values 【发布时间】:2018-02-25 09:54:22 【问题描述】:

这也应该适用于负值。 0.00% 既不是 + 也不是 -。因此,我希望它看起来像这样:

【问题讨论】:

我能想到的最好的数字格式是 +* #,##0.00%;-* #,##0.00%;* #,##0.00%* 的意思是:尽可能多的空格符号来填充单元格的宽度。 @AxelRichter 嗯……它不起作用。我认为辅助变量可能会有所帮助。 =IF((MAX(A2:A6)>=0,1);1;0)=IF((MAX(A2:A6)<0,1);1;0) 可能是正值解决方案的一部分。但尚未包括 0.00% 和负值。但我想知道是否可以在条件格式中使用这些变量。但我不知道我该怎么做。 【参考方案1】:

以下数字格式代码很容易设置。

+??0.00%;-??0.00%;??0.00%

但是,这为一位数列提供了额外的空间。

要解决此问题,请使用上述格式代码创建一个名为“两位数”的样式,并使用此格式代码创建另一个名为“一位数”的样式。

+?0.00%;-?0.00%;?0.00%

将样式着色为红色和蓝色以查看它们何时应用可能会有所帮助。

然后添加两个条件格式条目。

公式为:MAX(INDIRECT(ADDRESS(1;COLUMN())&":"&ADDRESS(10;COLUMN())))>=0.1 应用样式:“两位数”
公式为:MAX(INDIRECT(ADDRESS(1;COLUMN())&":"&ADDRESS(10;COLUMN())))<0.1 应用样式:“一位”

【讨论】:

好的,我没有看到使用的不是比例字体而是等宽字体。应该提到的是,这只有在使用等宽字体时才能按预期工作。 我的例子是 Liberation Mono。如果使用比例字体,那么它仍然会显示 2 个空格,但不会完美排列。

以上是关于如果列中的所有值都是一位数,则将 % 值显示为“+-ONESPACE-1.00%”,如果有两位数,则显示“+-TWOSPACES-1.00%”的主要内容,如果未能解决你的问题,请参考以下文章

匹配两列中的单元格值,如果匹配,则将另一个值复制到空白单元格

如何使用 WHILE 循环,直到列中的所有值都为零? pl/sql

与同一列中的多个值进行比较?

如何在PHP-jQuery中的DataTables中显示列的总和(其中所有值都是十进制值)?

如果列表中的所有值都是 40,则 Python 返回成功 [重复]

从另一个工作表的列中的工作表列中搜索每个值,如果找到,则将整行粘贴到输出中