首页 > 解决方案 > 如何根据国家/地区显示货币符号

问题描述

我有一张下面的表格,我想根据 C 列中选择的地区显示货币符号。如果我们选择美国,美元符号必须出现在 B 列中的成本之前,就像我们选择欧洲时,符号欧元必须出现在 B 栏中的成本之前。

https://docs.google.com/spreadsheets/d/1dlfXRcSDy7XhQmRuVa3dEmx6zjHukOlOoRp5V-Em1c0/edit#gid=0

您可以随意使用 VLOOKUP 或 CONCATENATE,符号必须出现在价格之前。

提前致谢

标签: google-sheetsgoogle-sheets-formula

解决方案


我为您创建了一个 onEdit 脚本。自己试试吧。如果您想更改要检查的工作表名称/列,我添加了一些评论。希望这符合您的需求。

  1. 转到工具 -> 脚本编辑器
  2. 从下拉列表中选择 setNumberFormat 并使用小播放按钮运行它。给先决条件。
  3. (也许使用下拉列表中的 onEdit 重复 2。)
  4. 关闭。现在你应该有一个工作脚本。

别人的剧本

function onEdit(){
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  //Change sheet name to check
  const sheet = "Purchase Sheet";
  const activeSheet = ss.getActiveSheet().getName();
  const cell = ss.getActiveSheet().getActiveCell();
  
  // 3 = column c. So change this to you needs
  if (activeSheet == sheet && cell.getColumn() == 27){
    console.log("True");
    setNumberFormat();
  }
}


function setNumberFormat() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const cell = ss.getActiveSheet().getActiveCell();
  let numberFormat = "";
  
  //With this as example, you can extend to your needs.
  switch (cell.getValue()) {
    case "AMERICA":
      numberFormat = "$#,##0.00";
      break;
    case "EUROPE":
      numberFormat = "€#,##0.00";
      break;
  }
  
  cell.offset(0, -21).setNumberFormat(numberFormat);
  
}

推荐阅读