使用满足特定条件的单元格创建数据验证列表

时间:2016-02-03 20:40:53

标签: excel excel-formula

我知道这个问题可以在VBA中轻松编码,但我试图在公式中实现它。

我正在尝试构建一个列表(使用数据验证),但我希望此列表仅采用该范围的部分符合某个条件

因此,我希望我希望将列表存储在C5中,并且让我说我在另一张名为Example_Range的工作表中有一个范围。我希望列表包含来自Example_Range的单元格,以便它们上方的两个单元格与C5以上的其他两个单元格相同。< / p>

因此,简而言之,我只需要从Range_Example中获取位于单元格下方的单元格,这些单元格与C5以上的单元格相同(我希望列表在其中)。 请注意,Example_Range与包含C5的工作表位于不同的工作表中。

我知道我可以在数据验证中的Source字段中插入公式,但我不知道如何构建这种类型的公式。任何帮助将不胜感激!

这是一个实际的例子:

我在&#34; Sheet2&#34;:

中有这些数据

enter image description here

我想在&#34; Sheet1&#34;中的红色单元格中使用数据验证创建一个列表:

enter image description here

我需要列表包含20,15,10,因为在&#34; Sheet1&#34;中,在红色方块上方,我收到了输入。然而,如果红色的上面的两个单元格具有&#34; Mazda&#34;和&#34; Lantis&#34;,我希望列表只用45填充。

所以我的范围是&#34; Sheet2&#34;中的第4行,但我不想要那个范围内的所有项目,只有那些上面有单元格与红细胞上方单元格相同的项目(列表将出现在)&#34; Sheet1&#34;。

1 个答案:

答案 0 :(得分:1)

这有点令人费解,但我找到了一个完成此任务的过程:

在表2中

  1. 单元格A6:=IF(A6="x","-",1),拖到列E
  2. 单元格A7:=IF(B6="x","-",MAX($A7:A7)+1)
  3. 单元格B7:=IFERROR(INDEX($A$6:$E$6,MATCH(G6,$A$7:$E$7,0)),"X"),拖到E7
  4. 单元格G7:list,拖到K7
  5. 创建一个工作簿范围定义的名称范围为=OFFSET(Sheet3!$G$7,0,0,1,COUNT(Sheet3!$G$7:$K$7)),引用:{{1}}
  6. 然后使用list作为表1单元格A4中的数据验证。

    完整图片视图的截图(例如Mazda Lantis,但我也测试了其他人。):

    enter image description here