
Я использую Excel 2010. Допустим, у меня есть рабочая книга, содержащая 13 рабочих листов. Первый рабочий лист называется «Summary», а остальные 12 — это месяцы года (январь-декабрь). В «Summary» я хочу попросить пользователя выбрать месяц. Затем я использую ' =DATE(YEAR(E1),MONTH(E1)+1,1)
' для увеличения до следующего месяца. Это делается в общей сложности 2 раза, поэтому пользователь вводит 06/01/2016
и получает июнь, июль и август. Теперь я хочу взять цифры из каждого из 3 названных месяцев и просуммировать их на рабочем листе «Summary». Проблема, с которой я сталкиваюсь, связана с использованием формулы INDIRECT()
и тем фактом, что ячейки Months отформатированы не как Text, а как Date (на самом деле Custom Dates).
Как бы я сделал ссылку на рабочие листы за июнь, июль и август в формуле, если данные в ячейках не являются текстовыми? Что-то вроде того, как =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))
(абсолютные ссылки необязательны)