获取特定范围内行上单元格中存在的所有字符实例

Get all instances of character present in cell on row in specific range

我有一个如下所示的电子表格:

我需要根据这些值创建地图。但我还需要每个 child 的 parent。地图将上传到数据库,其中将根据电子表格中的 parent 名称添加 children parent ID。

=ArrayFormula("{'title':"""&Sheet1!A2:A4&""", 'row': "&ROW(Sheet1!A2:A4)&" 'parents': ['?','?'], 'children': false,},")

使用 ROW(Sheet1!B3:B48) 我可以获得行号...所以我正在考虑将它与 A 一起使用来扫描该行以查找 x 以及找到的位置,得到该列然后使用 $column1 获取 parent 的名称。但这是我第一次使用电子表格函数...

编辑*

{'title': 'Child3', parents:['Parent1', 'Parent2', 'Parent3']}

尝试:

=INDEX(FLATTEN(IF(B2:D="",,B1:D1&" "&A2:A5)))

您可以通过在 Google Apps 脚本中创建的 custom function 来完成此操作。为此,请按照下列步骤操作:

  • 在您的电子表格中,select工具 > 脚本编辑器打开绑定到您的文件的脚本。
  • 在脚本编辑器中复制此函数,并保存项目:
function MAPPING(input) {
  const parents = input.shift();
  const output = input.map(row => {
    let childParents = [];
    for (let i = 1; i < row.length; i++) {
      if (row[i] == "x") childParents.push(parents[i]);
    }
    return [JSON.stringify({
      title: row[0],
      parents: childParents  
    })]
  })
  return output;
}
  • 现在,如果您返回电子表格,就可以像使用普通表格公式一样使用此函数。您只需提供适当的范围作为参数(在本例中为 A1:D4),如您在此处所见:

参考: