创build符合特定条件的单元格的数据validation列表
这是一个问题,我知道可以在VBA中很容易编码,但是我试图在公式中实现它。
我试图build立一个列表(使用数据validation),但我希望这个列表只能参与范围的一部分 ,这符合一定的条件 。
所以我们假设我想把列表存储在C5
,假设我在另一个名为Example_Range
表中有一个范围。 我希望列表由来自Example_Range
的单元格组成, 使得它们上方的两个单元格与C5
上方的另外两个单元格相同。
所以简而言之,我只需要从Range_Example
与C5
之上的单元格相同的单元格(我希望列表去)的单元格。 请注意, Example_Range
与包含C5
的工作表不同。
我知道我可以将公式插入到数据validation的Source
字段中,但我不知道如何构build这种types的公式。 任何帮助,将不胜感激!
这是一个实际的例子:
我在“Sheet2”中有这个数据:
我想在“Sheet1”的红色单元格中使用Data Validation创build一个列表:
我需要列表包含20,15,10,因为在“Sheet1”中,在红色方块的上方,这是我收到的input。 但是,如果红色上方的两个单元有“马自达”和“兰蒂斯”,我希望列表只能填充45。
所以我的范围是“Sheet2”中的整个第四行,但我不希望所有来自该范围的项目,只有那些在其上面的单元格与红色单元格上方的单元格(列表出现的位置)相同的项目“工作表Sheet1”。
这有点复杂,但我find了一个完成这个过程的过程:
在表2中
- 单元格A6:
=IF(AND(A2=Sheet1!$A$2,A3=Sheet1!$A$3),A4,"x")
,拖到列E - 单元格A7:
=IF(A6="x","-",1)
- 单元格B7:
=IF(B6="x","-",MAX($A7:A7)+1)
,拖到E7 - 单元格G7:
=IFERROR(INDEX($A$6:$E$6,MATCH(G6,$A$7:$E$7,0)),"X")
,拖到K7 - 创build一个工作簿作用域定义名称范围
list
引用:=OFFSET(Sheet3!$G$7,0,0,1,COUNT(Sheet3!$G$7:$K$7))
然后使用列表作为工作表1单元格A4中的数据validation。
完整图片视图截图(例如马自达兰蒂斯,但我也testing了其他人)。