关于 excel:如何将名称引用的数组公式值分配给列表数据验证?

How can assigning an array formula values which referred with a Name, to the List Data-Validation?

我写了下面的数组公式:

1
=INDEX(Table1[Column2],SMALL(IF(Sheet1!G6=Table1[Column1],ROW(Table1[Column1])-ROW(Table1[[#Headers],[Column1]])),ROW($A:$A)))

根据这张图1:

![![Array

注意所选范围包含上述数组公式。

我需要为右表的Column2以数据验证的列表形式定义数组公式返回的值。

我试过的:

我定义了一个 Name,因为响应于上述公式的 Sheet1!G6 引用部分在 Column2 单元格中为其分配的 Column1 单元格发生了变化。 (右表),根据下图2:

![![![Defining

然后设置右表数据验证的Column2,(下图3):

![Define

![Data


我知道您说过您不想使用辅助列或工作表。但是说:

  • 表格和数组公式不能共存。
  • 数据验证源不能是任何类型的复杂公式,但如果需要,您可以在源公式上使用间接到命名范围或地址(但前提是它是连续区域,而不是多个区域)。
  • 在数组公式中,数组永远不会作为整体结果返回,用作计算目标的每个单元格都是返回数组的一项。

所以我会做什么,返回一个区域中的数组公式,让我们说 A1,以及使用另一个单元格 B1 有效的数组结果中的项目数的计数器。使用单元格 C1 确定要使用的列表的地址。然后在验证源中使用 =INDIRECT(C1)

您可以隐藏其他工作表,以便其他用户看不到它,如果您通过宏将其隐藏,您可以将其设置为非常隐藏,并且无法直接从工作簿中使其可见。在我的示例中,您还可以为 C1 单元格创建一个命名范围,以便最终用户无法看到此验证源的来源。