首页 > 解决方案 > 如何使该公式适用于某个范围

问题描述

我很难将我的公式应用于一个范围。

我有什么在此处输入图像描述

这就是我需要的 在此处输入图像描述

我成功地用一行重现了相同的模式: 在此处输入图像描述

用这个公式: ={transpose(split(rept(A2&"|",9),"|")),transpose(split(rept(B2&"|",9),"|")),transpose({C1:K1}),transpose({C2:K2}),transpose(split(rept(U2&"|",9),"|")),transpose(split(rept(V2&"|",9),"|"))}

但是对于所有范围 A2:V93 我尝试这个但是(我已经省略了标题 C1:K1)我有一个错误(结果没有自动扩展,请插入更多列): =arrayformula({transpose(split(rept(A2:A93&"|",9),"|")),transpose(split(rept(B2:B93&"|",9),"|")),transpose({C2:K93}),transpose(split(rept(U2:U93&"|",9),"|")),transpose(split(rept(V2:93&"|",9),"|"))})

最后一个问题如何做到这一点。

在此处输入图像描述

我试过这个公式。但是如果我添加转置,它会将所有列转置到行,这不是我想要的原因 =arrayformula(split({{rept(A2:A93&"|",3)}},"|"))

非常感谢

编辑:链接=>床单

标签: google-sheetsgoogle-sheets-formula

解决方案


我认为这个带有 Flatten 的“非透视”公式应该适合你。

=ARRAYFORMULA(QUERY(SUBSTITUTE(SPLIT(FLATTEN(MK.Clean.Data!A2:A&"|"&MK.Clean.Data!B2:B&"#|"&TO_TEXT(MK.Clean.Data!U2:U)&"#|"&MK.Clean.Data!C1:T1&"|"&MK.Clean.Data!V2:V&"|"&MK.Clean.Data!C2:T),"|",0,0),"#",""),"where Col6<>'' order by Col1",0))

我应该提到 FLATTEN() 是我最近才发现的一个未记录的函数。我相信它打算在工作表编程的后端保持“隐藏”,但如果我所做的是你所追求的,那么真的没有更有效的方法来做到这一点。


推荐阅读