2016-09-27 2 views
-1

Примечание: Я задаю этот вопрос как документы Excel и Google, поскольку у них есть тонна перекрытия для простых вопросов, подобных этому.Excel - SUMIF и Weekday

У меня есть два столбца данных. Дата покупки и размер покупки.

A    B 
11/23/2015  $59 
12/5/2015  $23.32 
1/21/2016  $12.09 
1/22/2016  $78.21 
1/22/2016  $5.88 
2/14/2016  $0.13 
...    ... 
(thousands of rows below this) 

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

Если я использую SUMIF, я бегу в эту проблему:

=SUMIF(A:A, WEEKDAY(A:A), B:B) 
       ^WEEKDAY only takes in a single date value. 

Я сделать не хочу функцию, которую я должен перетащить вниз.

Как бы это осуществить?

ответ

0

query Попробуйте эту функцию:

=QUERY({A:B},"select dayOfWeek(Col1), sum(Col2) where Col1 is not null group by dayOfWeek(Col1)") 

enter image description here

В этой формуле я использовал массив {A:B} и обозначения Col1, Col2... в формуле, потому что теперь, когда вы добавляете новые столбцы, формула не подведет.


И формула похож, используя sumif:

={arrayformula(unique(weekday(A:A))),arrayformula(sumif(week‌​day(A:A),unique(week‌​day(A:A)),B:B))} 
+0

Это интересно, поскольку я использовал 'QUERY' раньше. Означает ли это, что 'SUMIF' просто не будет работать вообще в этом случае? – Hatefiend

+0

Я думаю, sumif возможен, но будет сложнее заставить формулу работать: вам нужно предопределять будни, что-то вроде: = '{arrayformula (уникальный (день недели (A: A))), arrayformula (sumif (день недели (A: A), уникальный (день недели (A: A)), B: B))} ' –

0

В Excel вы это делаете с этим формула массива. Формулу массива необходимо ввести с помощью Ctrl-Shift-Enter.

{=SUM(IF(WEEKDAY($A$2:$A$1000,1)=E2,$B$2:$B$1000,0))} 

Это предполагает, что ваш день недели в номере E2. Второй параметр в функции Weekday определяет, как вы укажете дни недели. Здесь я использовал 1, что означает 1 = воскресенье и 7 = суббота

+0

Или вы можете использовать это, если вы не хотите использовать arrayformula: = SUMPRODUCT (- (WEEKDAY ($ A $ 2: $ A $ 1000,1) = E2), $ B $ 2: $ B $ 1000) –

+0

Итак, ставя '{' '}' вокруг вашей формулы, превращает его в формулу массива? Как это работает? Какую функциональность он предоставляет? – Hatefiend

+0

Нет, Excel будет делать это автоматически, когда вы нажимаете Ctrl-Shift-Enter после ввода формулы. Если вы уже нажали кнопку enter, нажмите F2 и нажмите Ctrl-Shift-Enter. – eshwar