根据条件格式化货币

时间:2016-09-20 09:24:57

标签: google-apps-script google-sheets

Google Apps脚本新手,但具有一定的VBA编码经验。

我希望能够根据不同的单元格输入确定单元格的数字格式。

例如

  • Col A - 客户名称(验证范围)
  • Col B - 货币类型(GBP,USD,EUR - 验证清单)
  • Col C - 费用(100 - 用户免费)

根据Col B中的选择,需要将col C中的格式设置为:

£100.00或
$ 100.00或
€100.00。

这应该以这样的方式完成,即google表格底部显示的“autosum”功能仍然可以添加值,或者如果使用sumif函数将导致USD,GBP和EUR总计正确。 I.E.它不能是基于文本的解决方案,或者至少不是不是结果的解决方案。

1 个答案:

答案 0 :(得分:1)

尝试使用onEdit trigger,并设置自定义数字格式。

以下是货币格式的代码示例:

function customNumberFormat() {

  var SS = SpreadsheetApp.getActiveSpreadsheet();
  var ss = SS.getSheetByName('Sheet1');

  var range1 = ss.getRange("C2");
  var range2 = ss.getRange("C3");
  var range3 = ss.getRange("C4");

  var format1 = "£ 00.00"
  var format2 = "$ 00.00"
  var format3 = "€ 00.00"

  range1.setNumberFormat(format1);
  range2.setNumberFormat(format2);
  range3.setNumberFormat(format3);

}

使用脚本检查列中的当前条目,并使用适当的货币格式化。

但是公式的文字解决方案看起来更适合我: enter image description here

这样,您将使用sum隐藏列中的条目,并使用格式显示文本。总和可用于其他公式。

还有简单的ArrayFormula: =ArrayFormula(TEXT(C2,VLOOKUP(OFFSET(B2,,,COUNTA(B2:B)),H:I,2,0)&" 0.00"))

如果您将其粘贴到D2中,它会自动展开。