获取特定范围内行上单元格中存在的所有字符实例
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
),如您在此处所见:
参考:
我有一个如下所示的电子表格:
我需要根据这些值创建地图。但我还需要每个 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
),如您在此处所见: