公式合并Excel中多个连续行在同一行范围内的非空值

时间:2019-11-20 19:26:35

标签: excel

如果可能,我正在这里寻找基于公式的答案。我将举一个具体的例子,但要明确一点,我打算在更复杂的环境中使用此解决方案(即,如果我添加更多工作表,它将可以使用。)

假设我在工作簿中有四张纸:[摘要],[a],[b],[c]按此顺序。

每张[a],[b],[c]的

!$ A $ 2:$ A $ 6均填充有产生空值(“”)或所需信息(非空文本)的公式。如果有帮助,每张[a],[b],[c]的!$ A $ 1会计数这五个单元格中有多少是非空的。

[a]!$A$2:$A$6 = "", "red", "truck", "", "train"
[a]!$A$1 = 3
[b]!$A$2:$A$6 = "", "", "", "ball", ""
[b]!$A$1 = 1
[c]!$A$2:$A$6 = "pterodactyl", "", "", "", "bills"
[c]!$A$1 = 2

关于[摘要],我想使用一个公式或一系列公式在一个没有空值的列中生成,[a],[b],[中指定范围内的所有非空值C]。订单对我来说并不重要,但例如:

[summary]!$A$1:$A$6 = "red", "truck", "train", "ball", "pterodactyl", "bills"

您将如何做?

2 个答案:

答案 0 :(得分:1)

我修改了Scott的公式,使它更具活力。不确定是否适合您的需求,但是就行了。

帮助表

  • 每个标题是所讨论工作表的名称。这对于INDIRECT是必需的
  • =IFERROR(INDEX(INDIRECT(A$1&"!A:A"),AGGREGATE(15,7,ROW(INDIRECT(A$1&"!$A$2:$A$6"))/(INDIRECT(A$1&"!$A$2:$A$6")<>""),ROW(1:1))),"")
  • 一旦在表格的R1C1中输入了公式,就可以拖动公式

帮助器列

  • {=INDEX(CHOOSE(N(IF({1},COLUMN(Table2[#Headers]))),Table2[a],Table2[b],Table2[c]), MOD(ROW(1:1)-1,ROWS(Table2))+1, MOD(ROW(1:1)-1,COLUMNS(Table2))+1)}
  • 您将必须手动调整CHOOSE功能才能添加更多表列
  • 这是一个向下拖动的数组公式,直到达到ROWS(Table2)* COLUMNS(Table2)
  • 为简单起见,我将其转换为名为List1的命名范围

最终列

  • {=IFERROR(INDEX(List1,AGGREGATE(15,7,ROW(List1)-1/(List1<>""),ROW(1:1))),"")}
  • 这是一个下拉的数组公式

enter image description here

答案 1 :(得分:0)

在列表用完时,使用带有IFERROR的INDEX AGGREGATE移至下一页。

=IFERROR(IFERROR(INDEX(a!A:A,AGGREGATE(15,7,ROW(a!$A$2:$A$6)/(a!$A$2:$A$6<>""),ROW(1:1))),INDEX(b!A:A,AGGREGATE(15,7,ROW(b!$A$2:$A$6)/(b!$A$2:$A$6<>""),ROW(1:1)-a!$A$1))),INDEX('c'!A:A,AGGREGATE(15,7,ROW('c'!$A$2:$A$6)/('c'!$A$2:$A$6<>""),ROW(1:1)-(a!$A$1+b!$A$1))))

enter image description here