Google 表格数组中匹配行和标题值的条件替换

问题描述 投票:0回答:1

寻找一个可以替换数组中与表中第 1 行值和相应列值相匹配的任何值的公式

输入将包括为行提供相应的值(即A1:C1,A2:C3) 并提供要匹配的匹配表位置(即 ReplaceTable!A:A、B:B)和相应的替换值(即 ReplaceTable!C:C),如下表所示

值表!

1 2 3
约翰 绿色 1
玛丽 红色 2

替换表格!

身份证号码 价值 正则表达式替换
1 “^(\w+)” “1 美元”
2 绿色 很开心
2 红色 很难过
2 橙色 很害怕
2 红色 生气了
3 1 想念他的妈妈。

结果表

{公式} 2 3
约翰 很开心 想念他的妈妈。
玛丽 很难过 想念他的爸爸。

我相信这是 query() 或 indexmatch() 的变体,其中一些值被转置,可能使用查询然后查找该值。

通过执行以下几个步骤,我可以完成类似的事情,如下表所示。

数值表
1 2 3
约翰 绿色 一个
玛丽 红色 两个
替换表格
QID 选择 正则表达式替换
1 “^(\w+)” “1 美元”
2 绿色 很开心
2 红色 很难过
2 橙色 很害怕
2 红色 生气了
3 一个 想念他的妈妈。
3 两个 想念他的爸爸。
转置替换表
1 约翰 玛丽
2 绿色 红色
3 一个 两个
在第 1 行中使用公式的结果
1 约翰 玛丽
2 很开心 很难过
3 想念他的妈妈。 想念他的爸爸。
第 1 行公式
=arrayformula(iferror(vlookup({$A$18:$A$20&A18:A20},{$A$8:$A$15&$B$8:$B$15,$C$8:$C$15},2,false ),A18:A20)) =arrayformula(iferror(vlookup({$A$18:$A$20&B18:B20},{$A$8:$A$15&$B$8:$B$15,$C$8:$C$15},2,false ),B18:B20)) =arrayformula(iferror(vlookup({$A$18:$A$20&C18:C20},{$A$8:$A$15&$B$8:$B$15,$C$8:$C$15},2,false ),C18:C20))
使用单独公式转回的结果
1 2 3
约翰 很开心 想念他的妈妈。
玛丽 很难过 想念他的爸爸。
google-sheets-formula
1个回答
0
投票

您可以尝试:

=makearray(rows(A2:C3),columns(A1:C1),lambda(r,c,let(Σ,ifna(filter(F:G,E:E=index(A1:C1,,c))),if(Σ="",,
 reduce(index(A2:C,r,c),sequence(rows(Σ)),lambda(f,q,regexreplace(f&"",index(index(Σ,,1),q)&"",index(index(Σ,,2),q))))))))

  • 根据工作表中的数据结构相应调整范围
© www.soinside.com 2019 - 2024. All rights reserved.