Cố gắng lấy dữ liệu được sắp xếp và tính theo Quarters Lịch trong Excel


1

Tôi đang cố gắng thiết lập một công thức trong excel để xem xét một phạm vi dữ liệu có ngày được chỉ định trong c7: c30 và các loại Hoạt động- "A" và Hoàn thành- "C" trong L7: L30. Tôi đang cố gắng để excel xem xét từng hàng riêng lẻ và so sánh xem các ngày có nằm trong khoảng giữa các ngày được chỉ định là 1/1/12 (B38) và 3/31/12 (C38) (quý đầu tiên của năm không) và nếu điều kiện này được đáp ứng sau đó đếm những cái được đánh dấu bằng "A" để kích hoạt.

Tôi đã đưa ra những điều sau đây không hoạt động vì nó chỉ nhìn vào ngày đầu tiên được chỉ định và đếm tất cả được đánh dấu bằng "A" nếu ngày đầu tiên khớp với thông số kỹ thuật quý đầu tiên.

{= (IF (($ C $ 7: $ C30> = $ B $ 39) * ($ C $ 7: C $ 30 <= $ C $ 39), COUNTIF ($ L $ 7: $ L30, "a"), 0)) }

Vui lòng giúp tôi tìm ra điều gì sai với công thức này rằng nó sẽ không xem xét từng hàng riêng lẻ và thay vào đó, đếm tất cả được chỉ định bằng A nếu ngày đầu tiên được tìm thấy đúng so với câu lệnh if được trình bày.

Xin lỗi, không tuyệt vời ở excel, bất kỳ trợ giúp được đánh giá cao.

Cảm ơn!

Câu trả lời:


2

Tôi nghĩ rằng bạn có thể có một vấn đề với cách bạn cấu trúc công thức mảng. Chỉ cần giải nén câu lệnh của bạn, bạn sẽ xây dựng một mảng sẽ có nhiều hàng như bạn có, với mỗi hàng chứa kết quả của COUNTIF ($ L $ 7: $ L30, "a") nếu điều kiện ngày được đáp ứng hoặc 0.

Vì bạn không áp dụng bất kỳ hàm đếm nào bao bọc toàn bộ, nên hàm sẽ trả về toàn bộ mảng nhưng bạn sẽ chỉ thấy kết quả đầu tiên trong ô, đó là lý do tại sao nó dường như được điều khiển hoàn toàn bởi một ô.

Một cách khác để tiếp cận điều này sẽ như sau:

Ba bài kiểm tra của bạn (cho mỗi hàng) là:

  • ngày> = B38
  • ngày <= C38
  • điều kiện = "a"

và bạn chỉ muốn tính nơi cả ba đều đúng.

Đủ tiện lợi, các giá trị thực ước tính thành 1 và sai thành 0, vì vậy chúng tôi có thể sử dụng thao tác nhân để lấy ra những gì bạn muốn.

Vì vậy, đối với một hàng duy nhất bạn muốn làm như sau

(C7 >= B38) * (C7 <= C38) * (L7="a")

(và rõ ràng, mở rộng nó ra C7: C30, v.v. để trang trải các hàng bạn quan tâm)

Sau đó, thu gọn nó thành một giá trị duy nhất, sau đó bạn muốn gói toàn bộ lô trong câu lệnh SUM () sẽ đi qua danh sách và cộng tất cả các giá trị lại với nhau.

SUM( (C7:C30>B39) * (C7:C30<=C39) * (L7:L30="a") )

Ngoài ra, chỉ khi bạn tò mò muốn xem, hãy quay lại công thức ban đầu của bạn và kết thúc nó bằng một câu lệnh sum () và bạn sẽ nhận được kết quả hiển thị là số lần trạng thái của bạn được đặt thành "a", nhân với số lượng hàng đáp ứng điều kiện ngày ..

(chú ý:. công thức mảng mất một chút đầu gãi đầu, nhưng một khi bạn nhận được đầu của bạn xung quanh họ, họ sorta làm việc độc đáo Tôi ban đầu được đọc lên trên chúng tại http://www.cpearson.com/excel/ArrayFormulas.aspx mà vẫn là một lời giải thích khá hay nếu tất cả vẫn còn khó hiểu ..)


Bạn cũng có thể thay thế SUM bằng SUMPRODVEL trong đề xuất của tanantish, sau đó bạn không yêu cầu "nhập mảng". Ngoài ra, nếu bạn có Excel 2007 trở lên, bạn có thể sử dụng COUNTIFS cho nhiều điều kiện, ví dụ = COUNTIFS (C $ 7: C $ 30, "> =" & B39, C $ 7: C $ 30, "<=" & C39, L $ 7: L $ 30, "a")
barry houdini
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.