我是一名新手程序员,最初只是试图改进电子表格,但已超出了在Excel中使用基本函数。我有一个表格,我正在让函数查找第一列中的建筑物编号,然后查看两个其他各自列中的开始和结束日期,以确定是否应在日历工作表上填充特定区块。问题出现在同一栋楼房号可能会多次出现并带有不同的日期,我需要找到与正确日期匹配的条目。
我能够创建一个工作但复杂的公式来查找第一个实例,并学习到如果在false语句中再添加该公式的嵌套if并进行轻微更改,则可以继续执行该操作。我可以继续这样做,但它变得非常大而笨重。我正在尝试找到一种方法,使公式具有一个变量,该变量将查看已经使用多少次,因此它将继续搜索表格以寻找符合参数的答案。
以下是当前的公式:
在你看到
我能够创建一个工作但复杂的公式来查找第一个实例,并学习到如果在false语句中再添加该公式的嵌套if并进行轻微更改,则可以继续执行该操作。我可以继续这样做,但它变得非常大而笨重。我正在尝试找到一种方法,使公式具有一个变量,该变量将查看已经使用多少次,因此它将继续搜索表格以寻找符合参数的答案。
以下是当前的公式:
=IFERROR(IF(AND(DATE('IF SHEET (2)'!$F$7,MATCH('IF SHEET (2)'!$C$2,'IF SHEET (2)'!$C$2:'IF SHEET (2)'!$N$2,0),'IF SHEET (2)'!C$4)>=VLOOKUP("2D11"&1,A2:F6,4,0),DATE('IF SHEET (2)'!$F$7,MATCH('IF SHEET (2)'!$C$2,'IF SHEET (2)'!$C$2:'IF SHEET (2)'!$N$2,0),'IF SHEET (2)'!C$4)<=VLOOKUP("2D11"&1,A2:F6,4,0)),IF(VLOOKUP("2D11"&1,A2:F6,3,0)="2D11",VLOOKUP("2D11"&1,A2:F6,6,FALSE)),"NO ANSWER"),"ERROR")
在你看到
2D11&1
的地方是我需要变量1的位置,它应该是“函数中使用次数+1”,然后我可以循环检查直到跑完所有的2D11或找到与之匹配的。我以前没有发过帖子,这次是通过大量的试错来完成的,所以如果您需要更多信息,请回复并告诉我,我会尽力提供。
因此,与其让某人来理解我发布的荒谬公式,我想简化一下,只说我需要完成的任务,然后尝试将其转换为VBA函数。所以我正在考虑几个步骤:
- 将输出单元格所在行的建筑名称与A列中第一次出现的建筑名称进行匹配。
- 与输出单元格相关联的日期>=第一个输入的开始日期(用户输入在D列中)。
- 与输出单元格相关联的日期<=第一个输入的结束日期(用户输入在E列中)。
- 如果第1、2和3部分都为True,则输入建筑物的第一个实例的Unit名称(位于F列)。
- 如果第1、2或3部分为False,则循环查看下一列中建筑名称的实例。
希望这比公式更清晰一些,因为我仍然对VBA的了解很少,所以能够得到帮助。