2013-03-08 16 views
32

Tôi có dữ liệu excel ở định dạng sau.Công thức Excel đến ngày SUMIF rơi vào tháng cụ thể

Date  Amount 

03-Jan-13 430.00 
25-Jan-13 96.00 
10-Jan-13 440.00 
28-Feb-13 72.10 
28-Feb-13 72.30 

tôi cần phải tổng hợp các lĩnh vực lượng chỉ khi tháng nằm trong Jan Tháng.

gì tôi đã cố gắng là,

=SUMIF(A2:A6,"MONTH(A2:A6)=1",B2:B6) 

Nhưng nó sẽ trả về,

0 

gì tôi cần là,

Following values to be summed, 430.00 + 96.00 + 440.00 = 966.00 
+0

http://www.mrexcel.com/forum/excel-questions/75814-sum- if-date-month.html –

Trả lời

47

Hãy thử điều này thay vì:

=SUM(IF(MONTH($A$2:$A$6)=1,$B$2:$B$6,0)) 

Đó là một công thức mảng, vì vậy bạn sẽ cần phải nhập công thức đó bằng các điều khiển Điều khiển - Shift - Nhập tổ hợp phím.

Dưới đây là cách công thức hoạt động.

  1. MONTH ($ A $ 2: $ A $ 6) tạo ra một mảng các giá trị số của tháng cho các ngày trong A2: A6, có nghĩa là,
    {1, 1, 1, 2, 2}.
  2. Sau đó, so sánh {1, 1, 1, 2, 2}= 1 tạo mảng {TRUE, TRUE, TRUE, FALSE, FALSE}, bao gồm điều kiện cho câu lệnh IF.
  3. câu lệnh if sau đó trả về một mảng các giá trị, với {430, 96, 400.. cho các giá trị số tiền dao động trong đó giá trị tháng bằng 1 và ..0,0} trong đó giá trị tháng không bằng 1.
  4. mảng Đó {430, 96, 400, 0, 0} sau đó được tổng hợp để có được câu trả lời bạn đang tìm kiếm.

Điều này về cơ bản tương đương với chức năng của SUMIF và SUMIFs. Tuy nhiên, không phải của những chức năng hỗ trợ các loại tính bạn đã cố gắng để bao gồm trong điều kiện.

Cũng có thể thả IF hoàn toàn. Vì TRUE và FALSE cũng có thể được coi là 1 và 0, công thức này - =SUM((MONTH($A$2:$A$6)=1)*$B$2:$B$6) - cũng hoạt động.

Heads lên: Điều này không hoạt động trong Google Spreadsheets

+0

Cảm ơn nó hoạt động .. Bạn có thể vui lòng cho tôi biết mảng này hoạt động như thế nào? – logan

+2

Tôi đã sửa đổi câu trả lời của mình để giải thích cách thức hoạt động của công thức. – chuff

+3

Có cách nào để chỉ định một cột đầy đủ không? Thứ gì đó như MONTH (A: A)? Tôi đã kết thúc cần phải chọn một số lượng lớn kể từ khi tờ excel của tôi được liên tục thêm vào (Tôi cũng tham khảo một tờ khác nhau). '= SUM (IF (MONTH (đầu vào! $ A $ 2: $ A $ 10000) = 11, đầu vào! $ E $ 2: $ E $ 10000,0))' – bassmadrigal

23
=Sumifs(B:B,A:A,">=1/1/2013",A:A,"<=1/31/2013") 

Vẻ đẹp của công thức này là bạn có thể thêm nhiều dữ liệu hơn để cột A và B và nó sẽ chỉ tính toán lại.

+3

Đây là một công thức tuyệt vời, miễn là bạn chỉ muốn kiểm tra tháng Giêng trong ** năm 2013 **. Mặc dù đó có thể là mong muốn của OP, ông không đề cập đến tính đặc thù của năm trong câu hỏi của mình. –

+1

Đối với những người ở Anh, hãy nhớ chuyển đổi 31 và 1 xung quanh ... mà bắt gặp tôi. –

13
=SUMPRODUCT((MONTH($A$2:$A$6)=1) * ($B$2:$B$6)) 

Giải thích:

  • (MONTH($A$2:$A$6)=1) tạo ra một mảng của 1 và 0, đó là 1 khi tháng là tháng một, do đó trong ví dụ của bạn mảng được trả về sẽ là [1, 1, 1, 0, 0]

  • SUMPRODUCT đầu tiên nhân mỗi giá trị của mảng được tạo trong bước trên với các giá trị của mảng ($B$2:$B$6), sau đó tổng hợp chúng. Do đó trong ví dụ của bạn nó thực hiện điều này: (1 * 430) + (1 * 96) + (1 * 440) + (0 * 72.10) + (0 * 72.30)

này cũng hoạt động trong OpenOffice và Google Spreadsheets

Các vấn đề liên quan