Bài toán tính StDev có điều kiện (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

manhhoangnguyen

Thành viên mới
Tham gia
2/2/10
Bài viết
8
Được thích
0
mình có dữ liệu như sau:
A B
day1 3
day2 7
day3 4
day1 3
day4 6
day2 1
day1 3

Bây giờ mình muốn tính độ lệch chuẩn của cột B với điều kiên A= day1 thôi (nghĩa là stdev(3,3,3) đó)
Help!
Hỏi trên mạng thì mình áp dụng thử công thức =stdev(if(A:A="day1",B:B)) nhưng kết quả là sai.
 
Bạn xem hình sau:

dstdev.jpg



Dùng các hàm dữ liệu
Các hàm dữ liệu thực hiện việc tính toán cho các dòng thõa điều kiện. Tất cả hàm dữ liệu sử dụng cùng cú pháp:

= Function(database, field, criteria)

=DAVERAGE(database,field,criteria)
=DCOUNT(database,field,criteria)
=DCOUNTA(database,field,criteria)
=DGET(database,field,criteria)
=DMAX(database,field,criteria)
=DMIN(database,field,criteria)
=DPRODUCT(database,field,criteria)
=DSTDEV(database,field,criteria)
=DSTDEVP(database,field,criteria)
=DSUM(database,field,criteria)
=DVAR(database,field,criteria)
=DVARP(database,field,criteria)
= AVERAGEIF(range,criteria,average_range)

Trong đó:
Database:
là vùng địa chỉ của danh sách hoặc cơ sở dữ liệu
Field: Xác định cột dùng trong hàm. Ta tham chiếm các cột bằng nhãn và đặt trong dấu ngoặc kép “”. Cũng có thể tham chiếu đến cột thông qua số thứ tự cột của nó trong danh sách.
Criteria:
Tham khảo đến địa chỉ các ô xác định điều kiện của hàm.

Các hàm dữ liệu:

ddata1-1.jpg


Ví dụ:
wol_error.gif
Nhấp vào đây để thay đổi kích thước hình
ddata3.jpg


Cái chữ mình tô đỏ chính là điểm khác biệt về cách sử dụng của các hàm này. Trong các hàm dữ liệu bạn phải xác định cột "bằng tên hoặc số thứ tự" mà ta tính toán trên đó.

TP.


paperclip.png
Tập tin đính kèm
zip.gif
DFunctions.zip (4.4 KB, 2025 lần tải)
 
Nếu các bạn muốn kể cả phần diễn giải ở trên thì tải tập tin đính kèm.

Lê Văn Duyệt
 

File đính kèm

vẫn bài toán ấy, nhưng khác một chút ít là:
A ko còn là 1 cột day1, day2... nữa mà là số

A B
1 3
2 7
3 4
1 3
4 6
2 1
1 3

bây giờ tính stdev(B) của 1, 2, 3, 4
mình tính sao cứ vẫn không đúng
à mà hỏi các bạn luôn, nhãn "value" có phải là định nghĩa cho B:B không? lâu nay mình ko xài nhãn(vì hay chọn A:A cho nhanh)

vì mình ko hiểu rõ nhãn, nên, nếu có thể thì các bạn thử làm khi không có nhãn xem, hi vọng đọc hàm rồi so sánh mình sẽ hiểu được

mình attach file dưới đây nhờ các cao thủ giải đáp giùm bài toán
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
vẫn bài toán ấy, nhưng khác một chút ít là:
A ko còn là 1 cột day1, day2... nữa mà là số

A B
1 3
2 7
3 4
1 3
4 6
2 1
1 3

bây giờ tính stdev(B) của 1, 2, 3, 4
mình tính sao cứ vẫn không đúng
à mà hỏi các bạn luôn, nhãn "value" có phải là định nghĩa cho B:B không? lâu nay mình ko xài nhãn(vì hay chọn A:A cho nhanh)

vì mình ko hiểu rõ nhãn, nên, nếu có thể thì các bạn thử làm khi không có nhãn xem, hi vọng đọc hàm rồi so sánh mình sẽ hiểu được

mình attach file dưới đây nhờ các cao thủ giải đáp giùm bài toán

Xem file đính kèm nhé bạn! (Dùng hàm mảng)
 

File đính kèm

sai rồi bạn kìa, kết quả của =STDEV(IF($A$2:$A$8=A2,$B$2:$B$8)) = stdev(B2:B8) khi giá trị của A2 xuất hiện trong mảng A2:A8 thôi

mình đã nghiên cứu hàm DSTDEV, và nhận ra rằng phải chuyển cột sang hàng như ví dụ của microsoft mới tính đúng được
như vậy với dữ liệu hàng trăm cột chuyển sang hàng thật bất tiện nếu không muốn nói là ko khả thi (ko copy rồi paste tranpose được), có cách nào khác ko phải dùng DSTDEV ko nhỉ
 
Lần chỉnh sửa cuối:
sai rồi bạn kìa, kết quả của =STDEV(IF($A$2:$A$8=A2,$B$2:$B$8)) = stdev(B2:B8) khi giá trị của A2 xuất hiện trong mảng A2:A8 thôi

mình đã nghiên cứu hàm DSTDEV, và nhận ra rằng phải chuyển cột sang hàng như ví dụ của microsoft mới tính đúng được
như vậy với dữ liệu hàng trăm cột chuyển sang hàng thật bất tiện nếu không muốn nói là ko khả thi (ko copy rồi paste tranpose được), có cách nào khác ko phải dùng DSTDEV ko nhỉ

Chào manhhoangnguyen,

Mình tính nhầm stdev cho cột B.

Công thức tại C2 bạn sữa lại thành:
=STDEV(IF($B$2:$B$8=B2,$A$2:$A$8)) (nhấn Ctrl+Shift+Enter sau khi nhập xong)
Sao chép cho các ô bên dưới C3:C8

TTP.
 
Lần chỉnh sửa cuối:
không phải ạ, ý mình là công thức stdev(if()) của bạn sẽ ra kết quả ko đúng.
=STDEV(IF($B$2:$B$8=B2,$A$2:$A$8)) =stdev(a2:a8) chứ không phải stdev(a2, a5, a8) (đây mới là kết quả mong đợi)
*ctrl+alt_del để làm gì hả bạn?
 
không phải ạ, ý mình là công thức stdev(if()) của bạn sẽ ra kết quả ko đúng.
=STDEV(IF($B$2:$B$8=B2,$A$2:$A$8)) =stdev(a2:a8) chứ không phải stdev(a2, a5, a8) (đây mới là kết quả mong đợi)

Bạn thử kiểm tra kết quả xem! Thử cho thêm các số liệu và xem kết quả tính toán.

Công thức trên là hàm mảng nên phải dùng Ctrl+Shift+Enter khi kết thúc thay cho Enter nếu không sẽ bị sai kết quả. Đọc bài về hàm và công thức mảng dưới chữ ký của mình để tham khảo thêm.

Gợi ý: bạn chọn ô C2 và dùng chức năng Evaluate Formula trong Tools | Formula Auditing để xem Excel từng bước xử lý công thức.

TTP.
 
Lần chỉnh sửa cuối:
Chào bạn TTP,
Trong trường hợp B2:B8 có ô trống, kết quả không chính xác vì excel tính luôn giá trị của ô rỗng này và xem giá trị các ô này bằng 0 (zero). Vậy chúng ta sẽ xử lý như thế nào?
Cám ơn bạn
 
Web KT

Bài viết mới nhất

Back
Top Bottom