首页 > 解决方案 > 将重复的列组反转为行

问题描述

我有一张包含这种格式数据的表格 当前数据

但我希望它重新塑造成这样

所需数据

我尝试使用此答案中提供的代码转置数据,但是结果不是我想要的,而且我似乎无法理解它。我觉得我遗漏了一些明显的东西,但是使用分组列的需要让我有点吃惊。我习惯了 Python Pandas,我的 Excel/Sheets 技能严重缺乏。

我在这个演示电子表格中提供了所有电子表格和链接函数的使用示例。

非常感谢您的帮助!

标签: google-sheets

解决方案


您的工作表上有一个名为 MK.Help 的新选项卡。您将在单元格 A2 中找到此公式。

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(current_data!A3:A&"|"&current_data!B3:B&"|"&current_data!C3:C&"|"&FILTER(current_data!D3:L,REGEXMATCH(current_data!D2:L2,"size"))&"|"&FILTER(current_data!D3:L,REGEXMATCH(current_data!D2:L2,"colour"))&"|"&FILTER(current_data!D3:L,REGEXMATCH(current_data!D2:L2,"quantity"))),"|",0,0),"where Col4<>''"))

警告:我应该提到 FLATTEN() 是我最近才发现的一个未记录的函数。我相信它打算在工作表编程的后端保持“隐藏”,但如果我所做的是你所追求的,那么真的没有更有效的方法来做到这一点。如果您对使用未记录的函数感到不舒服,请告诉我,我可以尝试为您构建不同类型的工作。我曾与 Google 的一位工程师交谈过,并被告知它不会去任何地方,但也没有计划将其“公开”。


推荐阅读