最近有人问我是否可以在不使用 PowerQuery、VBA 或 TypeScript 等任何更“高级”功能的情况下在 Excel 中反转数据表。
过去,我曾使用一些相当复杂的
INDEX/MATCH
解决方案来完成此任务,但令我惊讶的是(近年来我并没有真正经常使用 Excel)Excel 365 使这变得非常容易。
一般解决方案非常简单且可读(特别是在使用命名表和范围时)。例如,对于一个基本表,例如:
这个公式实际上非常简单并且很容易遵循:
=TEXTSPLIT(
TEXTJOIN(",",TRUE,
TOCOL(Table3[Company]&"|"&Table3[[#Headers],
[2020]:[2023]]&"|"&Table3[[2020]:[2023]])),
"|",",")
真正让我印象深刻的是新的
LET
功能对我来说是多么有用。例如,当对输入稍有不同(带空格)和所需输出稍有不同的表进行逆透视时,使用 LET
使公式更容易遵循:
=LET(
array,
TEXTSPLIT(TEXTJOIN(",",TRUE,TOCOL(Table2[COMPANY]&"|"&Table2[[Service 1]:[Service 5]])),"|",","),
FILTER(array,CHOOSECOLS(array,2)<>""))
我还没有在网上找到很多此类非旋转公式的示例,因此希望其他人也会发现它有用。