这可能是一个非常初学者的问题,但在搜索失败后,我决定寻求帮助,尽管我感觉答案触手可及。
我正在 Excel/Sheets 中处理术语表,其中每行包含两列中的相关术语列表:A 列(英语术语)和 B 列(西班牙语术语)。每列中的术语用分号分隔。例如:
英语 | 西班牙语 |
---|---|
一个; | C; D |
e | F; G |
h;我 | J |
我需要在不同的行中输出同一行中 A 列和 B 列项的所有可能组合(如笛卡尔积)。上面例子的结果应该是这样的:
英语 | 西班牙语 |
---|---|
a | C |
a | D |
b | C |
b | D |
e | F |
e | G |
h | J |
我 | J |
你能帮我用公式或任何其他方法在 Excel 中实现这一目标吗?
例如,我尝试了 SPLIT 函数,它将文本围绕指定的字符或字符串进行分割,并将每个片段放入行中的单独单元格中,但这不是我真正想要的,并且手动操作会非常繁琐重新排列数百或数千个值。
在 Google 表格中:
=let(
get_, lambda(a, filter(a, len(A2:A), len(B2:B))),
pairs, map(get_(A2:A), get_(B2:B), lambda(en, es,
torow(sort(split(en, "; ", false) & "→" & tocol(split(es, "; ", false))))
)),
sort(iferror(split(tocol(pairs), "→")))
)
见 让(), lambda(), 地图(), 过滤器(), 如果错误(), 托罗(), tocol(), 分割() 和 排序()。