Google 表格中的 IFS 公式

Posted

技术标签:

【中文标题】Google 表格中的 IFS 公式【英文标题】:IFS Formula in Google Sheets 【发布时间】: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”中 如果您共享工作表的链接(确保在创建链接时将链接的共享权限设置为“知道链接的任何人...”和“编辑”),这将是获得帮助的最有效和最有效的方式。在我看来,这将需要一个额外的工作表/列表(包含所有您喜欢的标题)和一个公式,然后可以为“输出”工作表生成所有结果。我建议您在“输出”表中手动输入帖子中每种情况的至少一个示例。顺便说一句,正确的词是“输入”而不是“输入”。 【参考方案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

以上是关于Google 表格中的 IFS 公式的主要内容,如果未能解决你的问题,请参考以下文章

在嵌套的 IFS 语句中保留 Google 表格中的日期格式

用于分隔列表中的项目的 Google 表格公式

使用 Google 表格中的单个公式从范围创建动态排序和过滤列表

检索 Google 表格公式的行号

Excel表格怎么用公式提取文字和文字前面的数字?

如何使用 Google Apps 脚本将公式添加到 Google 表格?