谷歌表格将数字格式化为十亿/百万/数千,巧妙地[重复]

Posted

技术标签:

【中文标题】谷歌表格将数字格式化为十亿/百万/数千,巧妙地[重复]【英文标题】:Google sheetsFormat numbers as billions / millions / thousands, smartly [duplicate] 【发布时间】:2020-01-29 13:08:58 【问题描述】:

我有这个数字模板格式:

[>=999950]0.0,,"M";[<=-999950]0.0,,"M";0.0,"K"

但是我怎样才能让 Zeros 显示为“-”?

【问题讨论】:

【参考方案1】:

我认为你不能:

条件只能应用于前两个子格式,如果一个数字匹配多个,它将​​使用它匹配的第一个。如果有第三种格式,它将用于“其他所有”,否则如果数字与任何一种格式都不匹配,它将被渲染为所有“#”填充单元格宽度。第四种格式始终用于文本(如果存在)。

来源:https://developers.google.com/sheets/api/guides/formats#meta_instructions

【讨论】:

【参考方案2】:

我可以建议你寻找这样的东西

[>=999950]0.0,,"M";[<=-999950]0.0,,"M";#,,"-"

更新

正如@Benoît Wéry 所说,这是不可能的。但我认为你可以。

我正在使用一个简单的脚本来构建一个好的视图

function formatToMKZeros(range) 
  var values = range.getValues();
  return range.setNumberFormats(
    range.getNumberFormats().map(function(row, r) 
      return row.map(function(format, c) 
        return isNumeric(values[r][c])
          ? values[r][c] !== 0 && Math.abs(values[r][c]) < 999950
            ? '[<999950]0.0,"K";[>-999950]0.0,"K"'
            : '[>=999950]0.0,,"M";[<=-999950]0.0,,"M";#,,"-"'
          : format;
      );
    )
  );

The full code 关于格式的精彩文章Handling Negative Numbers in a Complex Custom Format 还有简单的示例The Only Spreadsheet Custom Number Format You’ll Ever Need

【讨论】:

是的,但我仍然需要显示 K 值,用于正值和负值

以上是关于谷歌表格将数字格式化为十亿/百万/数千,巧妙地[重复]的主要内容,如果未能解决你的问题,请参考以下文章

具有数千、数百万和数十亿的问题排序数字(货币)

字符串格式数字千位123K、百万位123M、十亿位123B

用百万 (M) 和十亿 (B) 后缀格式化数字

java中的数字格式使用Lakh格式而不是百万格式

Swift 2.0将1000格式化为友好的K.

如何在 PHP 中为数字(千、十万、百万、十亿)添加逗号分隔符