2009-04-12 36 views
11

Tôi đang cố gắng để tính trung bình có điều kiện của một biểu đồ trông như thế này:trung bình có điều kiện trong MS Excel

A | B 
------- 
x | 1 
x | 1 
x | 3 
x | 
y | 4 
z | 5 

Tôi đang sử dụng MS Excel 2007. Tôi nhận thức được AVERAGEIF() tuyên bố, nhưng không có tương đương với trung bình. Bí quyết chính là có những hàng không có dữ liệu - chẳng hạn như "a" thứ 4 ở trên. Trong trường hợp này, tôi không muốn hàng này được xem xét trong tất cả các tính toán.

Googling đã gợi ý sau đây, nhưng Excel sẽ không chấp nhận định dạng công thức (có lẽ bởi vì nó là 2007?)

=MEDIAN(IF((A:A="x")*(A:A<>"")), B:B) 

Excel đưa ra một lỗi nói rằng có cái gì đó sai trái với công thức của tôi (một cái gì đó để làm với các * trong điều kiện) tôi cũng đã cố gắng điều sau đây, nhưng nó đếm ô trống là 0 trong các tính toán:

=MEDIAN(IF(A:A = "x", B:B, "") 

tôi biết rằng những công thức trở Excel "mảng", có nghĩa là người ta phải nhập "Ctrl -shift-enter "để làm cho nó hoạt động chính xác.

Làm cách nào để đánh giá có điều kiện và không xem xét các ô trống?

Trả lời

8

Các câu lệnh lồng nhau nếu được.

=MEDIAN(IF(A:A = "x",IF(B:B<>"",B:B, ""),"") 

Không giải thích nhiều - nó sẽ kiểm tra xem A có phải là x không. Nếu có, nó sẽ kiểm tra nếu B không trống. Bất cứ điều gì phù hợp với cả hai điều kiện được tính như là một phần của trung vị.

Với bộ dữ liệu sau:

A | B 
------ 
x | 
x |  
x | 2 
x | 3 
x | 4 
x | 5 

Công thức trên trả về 3.5, đó là những gì tôi tin bạn muốn.

+1

Tôi phải biến công thức mảng này thành công thức. I E. '{= MEDIAN (IF (A: A =" x ", IF (B: B <>" ", B: B))}' hoạt động cho tôi (các câu lệnh khác là không cần thiết). Câu trả lời tuyệt vời, tuy nhiên! – Therkel

4

Sử dụng các công thức google, nhưng thay vì đánh Nhập sau khi bạn gõ vào thanh công thức, nhấn Ctrl + phím Shift +Nhập đồng thời (thay vì Nhập). Điều này đặt dấu ngoặc xung quanh công thức và sẽ coi nó là một mảng.

Được cảnh báo, nếu bạn chỉnh sửa, bạn không thể nhấn Nhập lại hoặc công thức sẽ không hợp lệ. Nếu chỉnh sửa, bạn phải thực hiện tương tự khi thực hiện (Ctrl + Shift + Nhập).

2

Có một cách khác không liên quan đến công thức mảng yêu cầu thao tác CtrlShiftEnter. Nó sử dụng hàm Aggregate() được cung cấp trong Excel 2010, 2011 và hơn thế nữa. Phương pháp này cũng hoạt động cho các phần trăm tối thiểu, tối đa và khác nhau. Tổng hợp() cho phép lỗi bị bỏ qua, do đó, mẹo là làm cho tất cả các giá trị không bắt buộc gây ra lỗi. Cách dễ nhất là thực hiện tác vụ ở trên là:

= Tổng hợp (16,6, (B: B)/((A: A = "x") * (B: B <> "")) , 0.5)

Tham số đầu tiên và cuối cùng đặt cảnh làm phần trăm 50%, là số trung vị, số thứ hai cho biết bỏ qua tất cả các lỗi (bao gồm DIV # 0) và thứ ba nói chọn dữ liệu cột B và chia nó bằng một con số là một số cho tất cả các giá trị không trống có một x trong cột A, và một số không nếu không. Các số không tạo ra phân chia bằng 0 và sẽ bị bỏ qua vì a/1 = a và a/0 = Div # 0

Kỹ thuật này hoạt động cho tứ phân vị (với giá trị p phù hợp), tất cả các phần trăm khác tất nhiên, và cho max và min bằng cách sử dụng hàm lớn hoặc nhỏ với các đối số thích hợp.

Đây là cấu trúc tương tự cho các thủ thuật Sumproduct() phổ biến, nhưng không thể sử dụng trên bất kỳ giá trị lượng tử hoặc giá trị tối đa nào khi nó tạo ra số không giống như số cho các hàm này.

Bob Jordan

+0

Nếu bạn đang tìm cách để tránh mảng (như tôi thường), giải pháp của Bob hoạt động tốt và có thể được tùy chỉnh với nhiều tiêu chí nếu cần. – NikG

0

Có lẽ để khái quát nó nhiều hơn một chút, thay vì điều này ...

{=MEDIAN(IF(A:A="x",IF(B:B<>"",B:B)))} 

... bạn có thể sử dụng như sau:

{=QUARTILE.EXC(IF(A:A="x",IF(B:B<>"",B:B)),2)} 

Lưu ý rằng các dấu ngoặc nhọn đề cập đến một công thức mảng; bạn không nên đặt các dấu ngoặc trong công thức của bạn nhưng nhấn CTRL + SHIFT + ENTER (hoặc CMD + SHIFT + ENTER trên hệ điều hành MacOS) khi nhập công thức

Sau đó, bạn có thể dễ dàng nhận được các tứ phân vị thứ nhất và thứ ba bằng cách thay đổi số cuối cùng từ số điện thoại tới hoặc tương ứng. QUARTILE.EXC là phần mềm thống kê thương mại nhất (ví dụ: Minitab) sử dụng bằng cách này. Hàm "thông thường" là QUARTILE.INC hoặc cho các phiên bản Excel cũ hơn, chỉ cần QUARTILE.

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