我正在尝试收集单元格范围内的所有非空单元格,然后将它们输出到单个列中,我可以拖动填充柄以自动获取下一个有效值。我正在运行 Office 2016,因此没有 FILTER 函数。需要从上到下,然后从左到右收集值,例如:
A1
A2
A3
B1
B2
B3... and so on
请参见下面的我所拥有的内容和我需要输出的内容的基本演示。
答案1
我想我有一个需要一个辅助列的解决方案。
请参阅下面的屏幕截图。
请注意,Cols H 和 I 不是必需的。保留它们只是为了让您知道需要为 INDEX 生成正确的 Row、Col 引用,以便从 6x4 网格中获取数据。
有一个辅助列 K。
K2 中的公式是
=IF(ISBLANK(INDEX($B$2:$E$7,MOD(ROW(A1)-1,6)+1,INT((ROW(1:1)-1)/6)+1)),"",INDEX($B$2:$E$7,MOD(ROW(A1)-1,6)+1,INT((ROW(1:1)-1)/6)+1))
将其向下拖动。这将在 B2:E7 上生成具有正确 Row,Col 引用的 INDEX 函数,并将数据展平为单列。
现在下一步是生成一个删除空白的列表。
M2 中的公式是
=IFERROR(INDEX($K$2:$K$25, SMALL(IF(NOT(($K$2:$K$25)=""), ROW($K$2:$K$25)-ROW($A$1),""), ROW(A1))),"")
将其向下拖动至目标行。
在我的 Excel 2021 中,不需要创建数组公式,但在 Excel 2016 中,上述示例中的两个公式可能需要作为数组公式才能正常工作。
您需要在公式栏内按CTRL+ SHIFT+ENTER来创建数组公式。
我还没有进行过广泛的测试。试试看吧。请注意-ROW($A$1)
公式中的第 2 行。