如何在 Excel 中从二维数组中创建动态范围?

如何在 Excel 中从二维数组中创建动态范围?

这是 2D 版本的如何在 Excel 中从列表中创建动态范围?

假设我有一个二维数据数组。我想用它生成一个动态数组,这样当数据添加到底部时,使用该数组的公式会自动调整大小。

我可以用它创建“结构化表格”,但这是一个额外的步骤,感觉没有必要。我真正想要的是lambda运行整个工作表并创建一个其他公式可以运行的动态数组。

这是它的 2-D 版本:

在此处输入图片描述

但我希望它是:

在此处输入图片描述

(这类似于问“如何使用动态数组自动生成结构化表?”)。

答案1

Mayukh 的答案如下,但我认为这更简单一些:

=LAMBDA(range,TAKE(range,MATCH(2,1/(CHOOSECOLS(range,1)<>""),1)))

按此使用,但请注意,它只会读取第一列的行数 - 如果其他列有更多行,它将不起作用。

在此处输入图片描述

答案2

根据新编辑进行更新,OP 的最后一篇文章(上一个问题)中已经给出了解释:

在此处输入图片描述


=LAMBDA(array,
  LET(
      _Data, array,
      _LastRow, MATCH(2,1/(TAKE(_Data,,1)<>"")),
      _Output, TAKE(array,_LastRow),
      IF(_Output=0,"",_Output)))(E:F)

第一个问题:答案解释这里


编辑:

考虑两列,而不是只以第一列作为基础,那么以下方法也应该有效:

在此处输入图片描述


=LAMBDA(array,
 LET(
     _Data, TAKE(array,AGGREGATE(14,7,ROW(array)/(array<>""),1)),
     IF(_Data="","",_Data)))(E:F)

相关内容