使用Excel列表进行条件数据验证

时间:2017-01-09 01:07:11

标签: excel validation

我正在建立一个工作簿来管理家庭装修业务的费用。该表名为' Jobs'包含状态'列,其中可以包含各种选项,例如“作业已开始'”,“作业完成”,“发票已发送'等

我打算使用另一个名为' expenses'的表格,我可以在其中添加费用,但仅限于状态设置为'作业开始的作业#39;为此,我将有一个列表数据验证,但我不知道如何生成只有相应状态的作业列表。

费用表:

expenses table

工作表:

Jobs table

其他名单:

misc lists

为清晰起见编辑: 在显示的示例中,当我点击'费用'的“作业网站”列中的项目时桌子,我想看看' Werribee'' Croydon South'和Pascoe Vale South'在列表中(因为他们的状态是'工作开始')

2 个答案:

答案 0 :(得分:1)

您可以使用此公式。

在费用表中,你把A2放了。

=IFERROR(INDEX(Jobs!$A$2:$A$999,SMALL(IF(Jobs!$I$2:$I$999="Job started",ROW($1:$100)),ROW()-1)),"")

基本上这会查找工作表作业,A2:A999并检查其状态是否为“作业已启动”,如果其验证为肯定,则复制A2:A999中具有“作业已启动”的值,粘贴这个在费用表上的每个单元格上。

不要忘记这是一个数组公式,所以在复制公式后按 Ctrl + Shift + Enter

答案 1 :(得分:0)

在费用表旁边的空列(比如F)中使用以下2公式

第一行

F2 = 1/AGGREGATE(14,6,1/((JOBS!$I$2:$I$14="Job started")*(ROW(JOBS!$I$2:$I$14)>1)*ROW(JOBS!$I$2:$I$14)),1)

以及下一行

F3 = 1/AGGREGATE(14,6,1/((JOBS!$I$2:$I$14="Job started")*(ROW(JOBS!$I$2:$I$14)>F2)*ROW(JOBS!$I$2:$I$14)),1)

向下拖动F3。请注意>1中的F2>F2及以后的F3。这将给出所有具有"作业开始的行号#34;作为Jobs表中的状态

获得行号后,您可以使用Index(Jobs table, row num, column num)获取这些行的其他数据

确保您在公式中输入的作业表范围从第一行开始,即A1:J7,如图所示

实施例 Example