如何在 Excel 中从列表中创建动态范围?

如何在 Excel 中从列表中创建动态范围?

我在 Excel 中遇到的一个相当常见的问题是,我导入了一大组数据,并想对其进行各种计算。但首先我必须“填充”我的数据行,如下所示:

在此处输入图片描述

但如果输入数据是动态数组,我就不需要这么做了!我可以自动定义一个动态数组函数,它会填充到底部,不会再往下填充了。

在此处输入图片描述

所以我的问题是如何将初始输入放入动态数组中? 如果 A 列中的数据是唯一的,那么我可以B使用在列中创建动态范围=UNIQUE(A:A)

但是,如果数据不是唯一的,我似乎无法=A:A不填充B工作表底部的列,即第 1048576 行,这会使工作表的大小(和计算时间)激增。

我想要的是=A:to_the_last_datapoint_in_A_and_no_further

有这样的事吗?谢谢!/YGA

答案1

也许你可以尝试这样的方法LastRow

在此处输入图片描述


=LET(
     _Data, A:A,
     _LastRow, MATCH(2,1/(_Data<>"")),
     UNIQUE(A2:INDEX(_Data,_LastRow)))

  • 使用LET()函数可以更容易阅读,减少冗余计算,提高效率。
  • _Data是范围的定义变量A:A
  • _LastRow是一个定义的变量,用于获取使用函数返回位置A:A的范围内的最后一行。MATCH()
  • 锚定第一个已知单元格,该单元格具有A2创建INDEX()参考范围的功能,可以返回直到最后一行的数据。
  • 最后应用UNIQUE()-如果需要的话。

或者使用TOCOL()

=UNIQUE(DROP(TOCOL(A:A,1),1))

  • 使用TOCOL()函数排除具有空行的单个数组作为2nd参数进行定义。
  • 使用DROP()排除标题的函数,因为我们已经获取了整个范围A:A
  • 最后,UNIQUE()如果需要的话,在函数内进行包装。

或者另一种更简洁的方法是使用Structured Referencesaka Tables,然后在公式中使用它,这样Tables帮助将数据带到最后一行,并随着数据中添加或删除而自动调整大小。

在此处输入图片描述


=UNIQUE(SomeData[Header])

注意:UNIQUE()此处的函数是多余的,如果需要,也可以将其排除。使用相同的函数,认为 OP 也需要唯一的函数。


答案2

=FILTER(A:A, A:A<>"", "Empty")

删除空单元格,但不会删除重复项。

答案3

我认为https://superuser.com/users/1247873/mayukh-bhattacharya 的反应非常好,事实上我所寻找的非常简单:

=TOCOL(A:A,1)

相关内容