我正在设计一个收缩规划器。需要根据单元格的值抛出输出。
要求
我需要根据员工姓名和收缩类型获取单元格的值。这是我写的公式。
=if(F10="January",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,4,0,(if(f10="February",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AD,6,0,(if(f10="March",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,8,0,(if(f10="April",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,10,0,(if(f10="May",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,12,0,(if(10="June",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,14,0,(f10="July",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,16,0,(iff10="August",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,18,0,(if(f10="September",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,20,0,(if(f10="October",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,22,0,(iff10="November",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,24,0,(VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,26,0)))))))))))
抛出一个错误,表示我为该函数输入了太多参数。
答案1
我发现了一些问题。
首先,您的 IF 函数只有两个参数。例如,最外层的 IF 状态具有以下参数:
F10="January",
VLOOKUP( ... )
为了正确格式化,您应该有一个条件、一个通过值和一个失败值。
此外,您的 VLOOKUP 函数有 5 个参数。例如,第一个 VLOOKUP 具有以下参数:
F13,
'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,
4,
0,
(IF( f10 = "February", .... ))
我认为您的意图是让 VLOOKUP 成为通过值,而下一个 IF 语句成为失败值。如果这是正确的,您应该按如下方式构造它:
=IF(F10="January",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,4,0), IF(F10="February", <next VLOOKUP>, <next IF>))
特别是,确保您关闭 VLOOKUP,而不是意外地在其中嵌入下一个 IF。
除此之外,您的表达式中还有各种拼写错误和缺失函数。您在某个地方求值10="June"
,而在另一个地方求值iff10="August"
。
答案2
正如评论中所提到的,您需要在记事本或类似程序中分解公式,并且可以通过以下方式输入轻松分解公式......
=if(F10="January",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,4,0,
(if(f10="February",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AD,6,0,
(if(f10="March",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,8,0,
(if(f10="April",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,10,0,
(if(f10="May",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,12,0,
(if(10="June",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,14,0,
(f10="July",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,16,0,
(iff10="August",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,18,0,
(if(f10="September",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,20,0,
(if(f10="October",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,22,0,
(iff10="November",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,24,0,
(VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,26,0)))))))))))
为了调试目的,取出所有右括号最后离开
(VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,26,0
这样它就与您之前的部分相匹配。
第一部分提供了单元格是否等于的条件。第二部分及以后的部分提供了单元格是否F10
等于的条件。"January"
然后,第二部分提供单元格是否F10
等于的条件"February"
。第三部分及以后是如果不等于的条件……等等。
让我们看看你的第一部分。这看起来不错,除了你的VLOOKUP
没有关闭。你需要在末尾添加一个右括号来关闭它。在末尾的逗号前添加它以使
=if(F10="January",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,4,0),
其他部分也有同样的问题。对每个部分都执行相同的操作,但最后一部分除外,最后一部分需要在最后添加一个右括号。
对于第二部分及以后的部分,删除开头的所有左括号。 你不需要它们这进一步加剧了混乱。
从第 2 节开始,阅读其余部分时,剩下的部分就很简单了。
第 6 节(6 月)您没有F
单元格引用F10
第7节(七月)你没有IF
一开始
第 8 节(8 月)您尚未打开该IF()
功能,因此需要在后面添加一个左括号IF
。第 11 节(11 月)也是如此。
现在您的部分看起来不错,您需要关闭所有IF()
功能,因为它们仍然打开(末尾没有右括号)。
计算IF
语句数量,并在最后一节末尾添加相应数量的右括号。IF
本例中语句数量为 11 条,因此在已经有右括号的情况下,需要在末尾添加 12 个右括号,剩下
VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,26,0))))))))))))
现在,您需要将各个部分重新连接在一起,形成一个IF()
可以起作用的嵌套公式。