我使用的是 Excel 2010。假设我有一个包含 13 个工作表的工作簿。第一个工作表名为“Summary”,其余 12 个是一年中的月份(1 月至 12 月)。在“Summary”中,我想让用户选择一个月份。然后,我使用“ =DATE(YEAR(E1),MONTH(E1)+1,1)
”递增到下一个月份。这总共做了 2 次,因此用户输入06/01/2016
后会得到六月、七月和八月。现在,我想从 3 个命名月份中分别获取数字,并在“Summary”工作表上将它们相加。我遇到的问题与使用公式INDIRECT()
以及月份单元格的格式不是文本而是日期(实际上是自定义日期)有关。
如果单元格中的数据不是文本,我该如何在公式中引用六月、七月和八月的工作表?就像=B1!H3
我试图访问一样=July!H3
。希望这有意义。如果没有,请告诉我,我可以尝试解决它。谢谢!
答案1
这是一个解决方案:
假设用户在中输入他们的日期E1
。
F1
包含=DATE(YEAR(E1),MONTH(E1)+1,1)
G1
包含=DATE(YEAR(F1),MONTH(F1)+1,1)
H1
包含=DATE(YEAR(G1),MONTH(G1)+1,1)
(下一部分我缩短了月份名称)
您可以使用该CHOOSE
函数提供一个选项列表 - 其中一个选项将根据第一个参数指定的数字进行选择。例如,假设您想A1
从其中一个命名工作表中获取值:
F2
包含=CHOOSE(MONTH(F1), Jan!$A$1, Feb!$A$1, Mar!$A$1, Apr!$A$1, May!$A$1, Jun!$A$1, Jul!$A$1, Aug!$A$1, Sep!$A$1, Oct!$A$1, Nov!$A$1, Dec!$A$1)
G2
包含=CHOOSE(MONTH(G1), Jan!$A$1, Feb!$A$1, Mar!$A$1, Apr!$A$1, May!$A$1, Jun!$A$1, Jul!$A$1, Aug!$A$1, Sep!$A$1, Oct!$A$1, Nov!$A$1, Dec!$A$1)
H2
包含=CHOOSE(MONTH(H1), Jan!$A$1, Feb!$A$1, Mar!$A$1, Apr!$A$1, May!$A$1, Jun!$A$1, Jul!$A$1, Aug!$A$1, Sep!$A$1, Oct!$A$1, Nov!$A$1, Dec!$A$1)
如果你想要总数,I2
只需这样做
=SUM(F2:H2)
或者,如果您不想显示每个月的数字,您可以编写一个巨大的函数:
=SUM(CHOOSE(MONTH(F1), Jan!$A$1, Feb!$A$1, Mar!$A$1, Apr!$A$1, May!$A$1, Jun!$A$1, Jul!$A$1, Aug!$A$1, Sep!$A$1, Oct!$A$1, Nov!$A$1, Dec!$A$1), CHOOSE(MONTH(G1), Jan!$A$1, Feb!$A$1, Mar!$A$1, Apr!$A$1, May!$A$1, Jun!$A$1, Jul!$A$1, Aug!$A$1, Sep!$A$1, Oct!$A$1, Nov!$A$1, Dec!$A$1), CHOOSE(MONTH(H1), Jan!$A$1, Feb!$A$1, Mar!$A$1, Apr!$A$1, May!$A$1, Jun!$A$1, Jul!$A$1, Aug!$A$1, Sep!$A$1, Oct!$A$1, Nov!$A$1, Dec!$A$1))
(绝对引用可选)