2016-11-27 1 views
0

У меня есть документ excel, который имеет 101 лист. 100 листов содержат данные за конкретный месяц, т. Е. Один из рабочих листов называется «май 2010», за которым следует рабочий лист «Июнь 2010». На каждом из этих листов есть список дат в столбце A и список доходов $ s в столбце B.Как использовать сумму, если добавлять значения, если рабочие дни в диапазоне соответствуют определенной ячейке

Я создаю сводный лист, который будет использовать косвенную функцию для просмотра всех разные листы и в основном суммировать весь доход, полученный в каждый день недели в каждом месяце. Например, я хочу, чтобы подвести все доходы, сделанные по вторникам в октябре 2014 г.

Я пытался использовать функцию массива следующим образом:

=SUM((--WEEKDAY(('May 2010'!A2:A22)=2)*(('May 2010'!B2:B22)))) 

Я нашел в Интернет. Я пытаюсь проверить, могу ли я суммировать все значения доходов в столбце B на листе, озаглавленном «Май 2010», если соответствующее значение в столбце A является понедельником. Значения в столбце A имеют вид '11 -May '

Я думаю, что моя проблема в том, что я пытаюсь проверить день недели с рядом значений, но я не совсем уверен. Я не совсем понимаю, как работают функции массива или даже если я должен их использовать. Я открываю любые предложения, если он не требует, чтобы я проходил каждую из моих 100 листов вручную и создавал столбец, который содержит будние дни соответствующих дат. Есть предположения?

+0

Так ли формула вы даете, как и ожидалось? И вы просто хотите, чтобы он расширялся для работы над несколькими листами, а не только одним? –

+0

Если вы нажмете на одну из дат на майском листе в мае 2010 года, отобразится ли она в правильном году, т.е. 11 мая (в формате США) 5/11/2010? –

+0

@XORLX На самом деле у меня есть часть, чтобы заставить его работать над уже выполненными несколькими листами. Я просто искал ответ о том, как заставить его работать на одном листе. Многочисленные вещи, которые я могу сделать с помощью косвенного –

ответ

1

Короткий ответ заключается в том, что скобки не совсем правильные.

=SUM(((WEEKDAY('May 2010'!A2:A22)=2)*('May 2010'!B2:B22))) 

или

=SUMPRODUCT(((WEEKDAY('May 2010'!A2:A22)=2)*('May 2010'!B2:B22))) 

, если вы не хотите вводить его как формулу массива.

Если, как @XOR LX, вы действительно хотите повторить это на всех ваших листах, это немного сложнее.

+0

Я использовал продукт суммы, и он работал безупречно. Можете ли вы объяснить, что делает эта функция?/Почему это работает? Я не понимаю, почему используется умножение и что делает функция дня недели. Проверяет ли он, что день недели каждого значения соответствует 2 (понедельника), а затем, если он делает это, дает 1 для true или 0 для false? а затем умножается на значение в соответствующей ячейке в столбце b? –

+1

Да, вы абсолютно правы в 1 и 0, используя будний день и умножение. Причина умножения используется в формуле массива, а не более очевидной И, что И смотрит на все значения, которые вы им даете, и объединяет их, но только предоставляет единственный результат, который не тот, который вы хотите. Умножение здесь умножает и поставляет массив с одним результатом для каждой пары значений, подаваемых на него, а также для принудительного ввода значений TRUE/FALSE в 1 и 0, поэтому вам не нужно ставить -. Затем SUMPRODUCT добавляет элементы массива. См. Https://exceljet.net/excel-functions/excel-sumproduct-function –

+0

Хорошо, все работает так, как планировалось сейчас. Спасибо за помощь! –