去掉整个专栏中的负号

Get rid of Negative signs from whole Column

我有一列,其中一些值是 $##.00,一些值是 -$##.00

我应该使用什么脚本将 -$##.00 值转换为 $##.00 值,即将所有数字转换为正数?

我尝试了以下方法,但效果不佳;

function removNeg(){
  var sheet =SpreadsheetApp.openById('.........');
  var ss = sheet.getSheets()[0];
  var range = ss.getRange("M2:M");
  var values = range.getValues();
  var absValues = Math.abs(values);
  range.setValues(absValues);
}
  • 您想使用 Google Apps 脚本将负数修改为正数。
  • 您想在 M2:M 的单元格中实现此目的。

如果我的理解是正确的,这个答案怎么样?

修改后的脚本:

当你的脚本修改后,变成如下。

function removNeg(){
  var sheet =SpreadsheetApp.openById('.........');
  var ss = sheet.getSheets()[0];
  var range = ss.getRange("M2:M");
  var values = range.getValues();

  var absValues = values.map(([r]) => [!r || isNaN(r) ? r : Math.abs(r)]);  // Modified

  range.setValues(absValues);

  // range.setNumberFormats(values.map(([r]) => ["$##.00"]));
}

注:

  • 如果您还想将数字格式从-$##.00修改为$##.00,请使用最后一行的range.setNumberFormats(values.map(([r]) => ["$##.00"]));
  • 请在启用 V8 的情况下使用此修改后的脚本。

参考: