Excel formula 基于列标题连接

Excel formula 基于列标题连接,excel-formula,Excel Formula,我有一个从外部系统导出的CSV数据,其中许多字段可以保存多个相关值。在UI中,这些字段的数据以逗号分隔显示在单个列中 我将定期导出此数据,以更新Excel 2016中的数据 在CSV导出中,这些字段中的每个附加值都会生成另一个具有相同字段标题的列,例如Sprints | Sprints | Sprints,每个列都具有来自该字段的一个值,例如S1 | S2 | S3。值越多,重复的列标题越多 第1周数据可能如下所示,右边是我想要的输出: 下次我进行导出时,列可能会更改,数据可能如下所示。导入的

我有一个从外部系统导出的CSV数据,其中许多字段可以保存多个相关值。在UI中,这些字段的数据以逗号分隔显示在单个列中

我将定期导出此数据,以更新Excel 2016中的数据

在CSV导出中,这些字段中的每个附加值都会生成另一个具有相同字段标题的列,例如Sprints | Sprints | Sprints,每个列都具有来自该字段的一个值,例如S1 | S2 | S3。值越多,重复的列标题越多

第1周数据可能如下所示,右边是我想要的输出:

下次我进行导出时,列可能会更改,数据可能如下所示。导入的数据甚至可能包括更多的comp数据列。同样,通过右侧的首选输出。

我用谷歌搜索了一下,但是我看到的连接解决方案都是基于列中的值而不是列标题来连接数据的

MAXB1:D1和MAXAB1:D1忽略了文本值,并为范围返回了0。每次更改CSV数据中的列数时,还需要手动设置范围

我需要一个Excel单元格/列中具有相同列标题/名称的每个字段的所有多个值,例如S1 S2 S3,但无法控制任何给定导出中具有相同列标题/名称的列数

或者,我可能只使用最左边和最右边的列值(例如S1和/或S3)成功


理想情况下,每次将CSV数据导入Excel后,无需任何额外的手动干预即可修改范围。

我没有最佳解决方案,但目前这应该会有所帮助

假设您的输入数据在表1中,如下所示:

然后在第2张中, 1.在单元格A1中,手动添加与表1中A1相同的标题,或使用公式=表1!A1 2.对于列标题,在单元格B1中使用此公式,将其扩展到同一行,直到得到零:

=INDEX(Sheet1!1:1,1,LOOKUP(2,1/(Sheet1!$1:$1=A$1),COLUMN(Sheet1!$1:$1))+1)
对于行值,在单元格A2中复制此公式,并在两个方向上进行扩展: 这将使您的输出如预期的那样:

您能举一些输入和预期输出数据的例子吗?很抱歉耽搁了。附加信息我们可以假设标题相同的栏目总是在一起吗?我想我已经回答了。很抱歉。六羟甲基三聚氰胺六甲醚。。。我不知道这句话到哪里去了。无论如何,具有相同标题的列将始终分组在一起。但是,它们之间可能有另一列,例如A、A、A、B、C、D、D、EThanks Kamal,第一个公式索引工作得很好。表2仅显示表1中的每个标题一次。干得好。第二个公式TEXTJOIN返回NAME?对于每个单元格。在进一步调查中,似乎=TEXTJOIN在我们的Excel 2016 SOE实例上不是有效的函数抱歉,我不明白什么是Excel 2016的SOE实例,我使用的是MS Office 365.SOE=标准操作环境。我们的操作系统和软件受到相当严格的控制。在我的工作站上安装应用程序几乎没有灵活性。好吧,看看你是否能像我一样使用VBA
=TEXTJOIN(",",TRUE,INDIRECT(CONCATENATE("Sheet1!",ADDRESS(ROW(),MATCH(A$1, Sheet1!$1:$1,0)))):INDIRECT(CONCATENATE("Sheet1!",ADDRESS(ROW(),LOOKUP(2,1/(Sheet1!$1:$1=A$1),COLUMN(Sheet1!$1:$1))))))