如何将一个名称引用的数组公式值分配给List Data-Validation?

我写下面的数组公式:

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

根据这张图片1

![![数组公式图片

请注意,所选范围包含上面的数组公式。

我需要定义该数组公式返回值右列表的Column2数据validation的列表forms。

我曾经试过的:

我定义了一个Name ,因为上面公式的Sheet1!G6引用部分的响应性在Column2单元格中为其专用的Column1单元格发生了变化。 (右表),按照下图2

![![![定义命名范围

然后设置右表数据validation的Column2 (下面的图片3):

![定义数据验证的列表形式

问题是

但是结果是,validation列表只包含数组公式的第一个结果! 如下图4所示:

![数据验证结果列表

如何定义一个数组公式值赋值给一个Name (上面的图片2)并用于List Data Validation(上面的图片3) (上面的图片4)

我的概念是:

  • 那里有一个array form formula如上所示。 (在论文中,而不是在工作表范围内)

  • 此数组公式对应于(可能返回的)结果的集合集合。

  • 我想使用上面的Data-Validaton List设置一个特殊的表列。

  • 不使用辅助工具(如工作表,列,数据透视表等)

  • 使用(1) – NameCtrl + F3 ),(2) – 数组公式(用于生成有效结果集合)和(3) – Data-Validation List无效;只允许在该专栏中input有效的数据))

我知道你说过你不想使用帮手列或表。 但是说:

  • 表和数组公式不能共存。
  • 数据validation源不能是任何types的复杂公式,但是如果需要,您可以使用间接对源公式的命名范围或地址(但仅限于其连续区域,而不是多个区域)。
  • 在数组公式中决不返回一个数组,每个用作计算对象命运的单元都是返回数组的一个项。

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

您可以隐藏其他工作表,使其他用户无法看到它,并且如果通过macros隐藏它,则可以将其设置为非常隐藏,并且无法直接从工作簿中显示它。 您可能还会在我的示例中为C1单元格创build一个命名范围,以便最终用户无法看到validation源位于何处。