2016-09-20 115 views
0

对Google Apps脚本不熟悉,但具有一定的VBA编码体验。根据条件格式化货币

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

例如。

  • 柱A - 客户端名称(有效范围)
  • 色柱B - 货币类型(英镑,美元,欧元 - 验证列表)
  • 山口Ç - 收费(100 - 游离型由用户)

基于在色柱B,它需要投入COL C中的格式作为选择之一:

£100.00或
$ 100.00或
€100.00。

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

+0

欢迎来到[so]。请参加[旅游]和结帐[问]。如果您决定编辑您的问题,请描述您为什么以及如何通过[tag:google-apps-script]解决问题,而不是使用内置的数字格式/区域设置。 –

回答

1

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

这里的代码SAMPE为货币格式:

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

这样,你与和躲藏在列中的条目,并显示出与格式文本。总和可用于其他公式。

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

如果您在D2贴吧,它会自动展开。

+0

谢谢Max。有限的使用,但需要选择B2英镑和C2将需要£00.00。如果选择B2作为美元,则C2需要为$ 00.00。跟随?你的代码只是根据单元格B2中的值设置特定的格式而不是动态格式。 –

+0

是的,当然,我的代码给出了您想要采取行动的方向。对不起,但我认为你的问题是非常具体的情况,所以我没有时间为你编写整个代码。希望,有人会。 –