创build符合特定条件的单元格的数据validation列表

这是一个问题,我知道可以在VBA中很容易编码,但是我试图在公式中实现它。

我试图build立一个列表(使用数据validation),但我希望这个列表只能参与范围的一部分 ,这符合一定的条件

所以我们假设我想把列表存储在C5 ,假设我在另一个名为Example_Range表中有一个范围。 我希望列表由来自Example_Range的单元格组成, 使得它们上方的两个单元格与C5上方的另外两个单元格相同。

所以简而言之,我只需要从Range_ExampleC5之上的单元格相同的单元格(我希望列表去)的单元格。 请注意, Example_Range与包含C5的工作表不同。

我知道我可以将公式插入到数据validation的Source字段中,但我不知道如何构build这种types的公式。 任何帮助,将不胜感激!

这是一个实际的例子:

我在“Sheet2”中有这个数据:

在这里输入图像说明

我想在“Sheet1”的红色单元格中使用Data Validation创build一个列表:

在这里输入图像描述

我需要列表包含20,15,10,因为在“Sheet1”中,在红色方块的上方,这是我收到的input。 但是,如果红色上方的两个单元有“马自达”和“兰蒂斯”,我希望列表只能填充45。

所以我的范围是“Sheet2”中的整个第四行,但我不希望所有来自该范围的项目,只有那些在其上面的单元格与红色单元格上方的单元格(列表出现的位置)相同的项目“工作表Sheet1”。

这有点复杂,但我find了一个完成这个过程的过程:

在表2中

  1. 单元格A6: =IF(AND(A2=Sheet1!$A$2,A3=Sheet1!$A$3),A4,"x") ,拖到列E
  2. 单元格A7: =IF(A6="x","-",1)
  3. 单元格B7: =IF(B6="x","-",MAX($A7:A7)+1) ,拖到E7
  4. 单元格G7: =IFERROR(INDEX($A$6:$E$6,MATCH(G6,$A$7:$E$7,0)),"X") ,拖到K7
  5. 创build一个工作簿作用域定义名称范围list引用: =OFFSET(Sheet3!$G$7,0,0,1,COUNT(Sheet3!$G$7:$K$7))

然后使用列表作为工作表1单元格A4中的数据validation。

完整图片视图截图(例如马自达兰蒂斯,但我也testing了其他人)。

在这里输入图像说明