有没有办法在A1单元格中使用下拉列表来规定在A2单元格中使用哪个公式

时间:2015-04-02 22:05:25

标签: excel nested

假设这是我想要做的最佳方式...... 这些是我希望能够在两个论坛之间切换的论坛:

=150-(EDATE(F2, 37)>TODAY())*37.5-(EDATE(F2, 120)>TODAY())*37.5

=80-(EDATE(F2, 37)>TODAY())*20-(EDATE(F2, 120)>TODAY())*20

为了更好地了解我正在尝试做什么,这是一个截图:

CellB1

是使用数据验证进行的下拉(FUll Time,Part Time)。 根据我的选择,我希望Cell C1能够反映出适当的论坛... 顺便说一下,公式看看CellA1,并根据服务年数显示单元格中显示的休假天数

3 个答案:

答案 0 :(得分:0)

如果用户无法在B2中输入任何其他内容,您可以使用以下公式:

=IF(B2="Full Time", *FullTimeFormula*, *PartTimeFormula*)

如果用户可以输入自己的数据,您可能需要使用以下公式:

=IF(B2="Full Time", *FullTimeFormula*, IF(B2="Part Time",*PartTimeFormula*,"[Error message here]"))

答案 1 :(得分:0)

除了兼职时间版本返回8/15的全时值之外,这两个公式不是一样吗?在这种情况下,您只能使用一个公式,如果G2 =“part Time”,则乘以8/15,例如

=IF(G2="part time",8/15,1)*(150-(EDATE(F2, 37)>TODAY())*37.5-(EDATE(F2, 120)>TODAY())*37.5)

就个人而言,我会按照我在原始问题here中的建议使用DATEDIF - 这样会更容易调整:

然后看起来像这样:

=(MATCH(DATEDIF(F2,TODAY(),"y"),{0,3,10})+1)*IF(G2="part time",20,37.5)

虽然我注意到你在{strong> Jeeped 建议的公式中将EDATE(代表3年)中的36改为37 - 这是故意的吗?

答案 2 :(得分:0)

最终答案:

=If(B2="Full Time",150-(EDATE(F2, 37)>TODAY())*37.5-(EDATE(F2, 120)>TODAY())*37.5,If(B2="Part Time",80-(EDATE(F2, 37)>TODAY())*20-(EDATE(F2, 120)>TODAY())*20,0),0)