【问题标题】:IFS Formula in Google SheetsGoogle 表格中的 IFS 公式
【发布时间】:2021-04-15 15:35:12
【问题描述】:

我正在 Google 表格中寻找公式。

公式基于“输入”表和“输出”表。在“输入”表中有以下列:

current_position, company_name, current_position_2, current_company_2

在“输出”表中有“标题”和“帐户名称”Imput + Output

公式应该在“输出”中的“标题”中并说:

1)

如果“current_position”包含“COO”、“CEO”、“CSO”(以及更多头衔),则取“company_name”并在“Output”下输入“Account Name”。

2)

如果“current_position”不包含“COO”、“CEO”、“CSO”(以及更多头衔)并且“current_position_2”包含“COO”、“CEO”、“CSO”(以及更多头衔) ) 然后将“current_position_2”放在“Output”的“Title”中,将“current_company_2”放在“Output”的“Account Name”中

3)

如果“current_position”或“current_position_2”都不包含“COO”、“CEO”、“CSO”(以及更多头衔),则取“current_position”并在“Output”和“Current_position_2”下输入“Title”并在“输出”中输入“帐户名称”

【问题讨论】:

  • 1)* 如果“courrent_position”包含...,则将“current_position”放在“Title”中,将“current_position”放在“Account Name”中
  • 如果您共享工作表的链接(确保在创建链接时将链接的共享权限设置为“知道链接的任何人...”和“编辑”),这将是获得帮助的最有效和最有效的方式。在我看来,这将需要一个额外的工作表/列表(包含所有您喜欢的标题)和一个公式,然后可以为“输出”工作表生成所有结果。我建议您在“输出”表中手动输入帖子中每种情况的至少一个示例。顺便说一句,正确的词是“输入”而不是“输入”。

标签: if-statement google-sheets google-sheets-formula


【解决方案1】:

注意:

请务必尽可能提供您迄今为止所做的工作或分享您所做的任何研究,以确保您是posting a good question

推荐:

在我的测试中,IFS 函数非常有限,无法实现您根据多个条件为不同列设置值的目标。

creating a custom function 提出了一个替代解决方案,它检查“输入”表上的所有值,并根据您上面描述的 3 个条件返回“输出”表上的值:

更新 脚本:

function onOpen() { // to refresh 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Output').getRange('C2').setValue("=checkImput()");
}

function checkImput(){
  var imput = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Imput');
  var row = imput.getDataRange().getNumRows();
  var res = [];

  for(var x=2; x<=row; x++){
    var current_position = imput.getRange(x,7).getValue();
    var current_position2 = imput.getRange(x,43).getValue();
    var positions = "COO,CEO,CSO"; //Add new postion separated by comma

    if(positions.includes(current_position)){ // If "courrent_position" contains "COO", "CEO", "CSO" 
      res.push([current_position,imput.getRange(x,8).getValue()]); //Then put "current_position" in "Title" and "current_company" in Account Name
    }else{
      if(positions.includes(current_position2)){ //If "current_position" does not contain "COO", "CEO", "CSO" (and a lot more titles) AND "current_position_2" contain "COO", "CEO", "CSO" 
        res.push([current_position2,imput.getRange(x,44).getValue()]); //Then put "current_position_2" in "Title" in "Output" and "current_company_2" in "Account Name" in "Output"
      }else{ //If neither of "current_position" or "current_position_2 contains "COO", "CEO", "CSO" (and a lot more titles) 
        res.push([current_position2,imput.getRange(x,44).getValue()]); //Then take "current_position" and put in "Title" under "Output" and "Current_position_2" and put in "Account Name" in "Output"
      }
    }
  }
 return res;
}

这是我测试过的示例“输入”表:

结果在“输出”表上:

【讨论】:

  • 我似乎无法理解为什么它在第 1 行的 Title 和 Account Name 中都显示 CEO。它应该说:第 2 行:CEO |苹果第 3 行:CSO |亚马逊第 4 行:副总裁 | Facebook 我应该将脚本复制到脚本编辑器中吗?
  • 更新了脚本。只需复制并粘贴它。只需确保工作表的名称在电子表格中为“输入”和“输出”即可。
  • 我已经添加了新脚本,但是“输出表”上的“标题”和“帐户名称”仍然为空。我试图创建一个新的电子表格并刷新该网站,但它仍然无法正常工作。我试图更改脚本,使其显示“current_position2”的位置显示“current_position_2”,因此它对应于 collum 标题。难道我做错了什么?这是电子表格的链接:docs.google.com/spreadsheets/d/…
  • 我根据每个数据的列更改了脚本上的列号(例如 current_position 在您共享的工作表的第 7 列中),它会起作用。
  • 那么我如何更改为 collum 数字。输入:current_position - collum 7 company_name - collum 8 current_position_2 - collum 43 current_company_2 - collum 44 输出:标题 - Collum 3 帐户名称 - Collum 4
猜你喜欢
  • 1970-01-01
  • 2021-08-26
  • 2023-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
相关资源
最近更新 更多