Những công thức độc đáo (1 người xem)

  • Thread starter Thread starter OverAC
  • Ngày gửi Ngày gửi

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

OverAC

Đỗ Nguyên Bình
Thành viên BQT
Administrator
Tham gia
30/5/06
Bài viết
2,699
Được thích
15,158
Vửa rồi có ngứa tay ngọ ngoạy tính toán mấy cái vụ duy nhất thấy hay hay. Một phần vụ này học từ anh Adam, sau thì thấy nó có xuất hiện trong phần Help của Excel nữa, nhưng lâu rồi không nhớ nó nằm ở đâu.

1. Tính số phần tử xuất hiện trong một mảng số
{=sum(1/Countif(vungso,vungso))}
Ý tưởng trong hàm trên: quét qua các số trong mảng rồi cộng lại với quy tắc. Nếu số đó xuất hiện một lần thì tính 1 (1/1 = 1), nếu số đó xuất hiện n lần thì các lần lước qua sẽ được tính giá trị là 1/n (như vậy sau n lần lước qua ta cộng lại được = 1)
2. Cộng các phần tử trong mảng và không tính nếu phần tử xuẩt hiện lần thứ 2 trở lên.
{=sum(vungso/countif(vungso,vungso))}
Ý tưởng thì giống như trên như ở trên có điều mỗi lần lước qua một phần tử trong mảng ta không tính giá trị là 1 là tính giá trị là chính con số đó.

3. Xếp hạng liên tục không dùng VBA =1+SUMPRODUCT((VungRank>A2)*(1/COUNTIF(VungRank,VungRank)))
Hoặc {=SUM(1/(IF(VungRank>A2,COUNTIF(VungRank,VungRank),9.999999E+307)))+1}

A2: ô đầu tiên của VungRank, ví dụ: View attachment 4247

Đó là các cách tính đơn giản có thể nó còn hơi tối nghĩa. Mong các cao thủ có các hàm hay hơn hoặc các công thức khác lợi hại hơn cho mục đích khác.

Bổ sung ngày: 3/10/2007
 
Lần chỉnh sửa cuối:
Ý tưởng công thức đơn giản và hay, nhưng nếu đưa ra 1 ứng dụng thực tế của bạn thì giá trị hơn.
Trường hợp 1) mà tôi muốn đếm trong trường hợp các phần tử không phải là những con số thì thế nào ?
 
Trong trường hợp 1 thì vẫn áp dụng được đối với các phần tử không phải con số vì nó chỉ đếm rồi cộng các giá trị đếm được lại mà thôi.
Việc ứng dụng cụ thể thì em chưa làm bao giờ nhưng biết đâu nó có thể hữu ích cho một ai đó. :)
 
Một cách vận dụng trong kế toán là tính sl hoá đơn sử dụng, tính sl loại hàng bán, tính sl khách hàng trong một khoảng thời gian, ví dụ: tháng....
Có dùng thêm sumproduct và offset
Nhờ các bạn xem có gì sai không.
 
Lần chỉnh sửa cuối:
ThuNghi đã viết:
Một cách vận dụng trong kế toán là tính sl hoá đơn sử dụng, tính sl loại hàng bán, tính sl khách hàng trong một khoảng thời gian, ví dụ: tháng....
Có dùng thêm sumproduct và offset
Nhờ các bạn xem có gì sai không.
ThuNghi sử dụng Offset rất linh hoạt. Hơi bị hay.
Thân!
 
Một cách vận dụng trong kế toán là tính sl hoá đơn sử dụng, tính sl loại hàng bán, tính sl khách hàng trong một khoảng thời gian, ví dụ: tháng....
Có dùng thêm sumproduct và offset
Nhờ các bạn xem có gì sai không.
Xin chào tiền bối thu nghi em mới gia nhập diễn đàn và chưa biết nhiều về các hàm excel nhưng qua nhiều bài viết của tiền bối khiến cho em cảm thấy mình được mở mang rất nhiều! và mới đây em cũng đang tập toẹ làm sổ kế toán của công ty và em dow được ở trên GPE một hệ thống sổ sách có sử dụng các hàm như offset, hàm index, hàm match em chưa thực sự hiểu thấu đáo về cách sử dụng cũng như công dụng của nó lắm xin tiền bối chỉ giúp cho em với!
 
1/n la cach tinh ti le chu? neu tinh so lan xuat hien thi cong thuc phai la =sum(countif(vung so lieu,vung so lieu). ban thu kiem tra lai xem nhe!
 
hàm rank: xếp hạng cho kết quả thứ hạng của dãy số.Dãy số luôn có địa chỉ tuyệt đối
Cú pháp =rank(số,dãy số,n)
* n=0: số lớn được sắp theo thứ tự nhỏ ( giảm dần ), xếp trong học tập,..
* n=1:số lớn được sắp theo thứ tự lớn ( tăng dần ), dùng trong thể thao,..
_ Tại sao trong excel của OverAC lại không có n zậy?
 
hàm rank: xếp hạng cho kết quả thứ hạng của dãy số.Dãy số luôn có địa chỉ tuyệt đối
Cú pháp =rank(số,dãy số,n)
* n=0: số lớn được sắp theo thứ tự nhỏ ( giảm dần ), xếp trong học tập,..
* n=1:số lớn được sắp theo thứ tự lớn ( tăng dần ), dùng trong thể thao,..
_ Tại sao trong excel của OverAC lại không có n zậy?
Tham số thứ 3 (order) của hàm RANK có 2 giá trị: 0-Descending và 1-Ascending. Khi bạn gõ hàm RANK và dấu (, Excel sẽ đưa ra gợi ý các tham số của hàm, trong đó, tham số thứ 3 được đặt trong một cặp dấu [], cho thấy tham số này có thể nhập hoặc để trống. Nếu để trống tham số thứ 3 này thì Excel hiểu nó lấy giá trị mặc định là 0-Descending.

Trong Excel có nhiều hàm có tham số bắt buộc nhập và tham số không bắt buộc nhập. Chẳng hạn với hàm RIGHT (hoặc LEFT), tham số thứ 2 (num_chars) là không bắt buộc nhập, khi đó, Excel lấy giá trị mặc định là 1.
 
Em bầu trọn cho công thức này độc đáo nhé
=LOOKUP(REPT("z",255),CHOOSE({1;2},"",INDEX($A$2:$A$101,MATCH(TRUE,INDEX(ISNA(MATCH($A$2:A$10,$B$1:B1,0)),0),0))))
Công thức này rất lạ của Hoamattroicoi thành viên Hải Phòng
Em chỉ có thể Copy nguyên công thức vào vận dụng thôi mặc dù đã biết qua mấy hàm đơn trên rồi
Bác LeDuyThuong và mọi người có góp ý và giải thích như Bác OverAC giải thích công thức trên được không
http://www.giaiphapexcel.com/forum/showthread.php?64312-T%C3%ACm-t%C3%AAn-tr%C3%B9ng-v%C3%A0-t%C3%AAn-kh%C3%A1ch-h%C3%A0ng/page2


 

File đính kèm

Lần chỉnh sửa cuối:
Vửa rồi có ngứa tay ngọ ngoạy tính toán mấy cái vụ duy nhất thấy hay hay. Một phần vụ này học từ anh Adam, sau thì thấy nó có xuất hiện trong phần Help của Excel nữa, nhưng lâu rồi không nhớ nó nằm ở đâu.

1. Tính số phần tử xuất hiện trong một mảng số
{=sum(1/Countif(vungso,vungso))}
Ý tưởng trong hàm trên: quét qua các số trong mảng rồi cộng lại với quy tắc. Nếu số đó xuất hiện một lần thì tính 1 (1/1 = 1), nếu số đó xuất hiện n lần thì các lần lước qua sẽ được tính giá trị là 1/n (như vậy sau n lần lước qua ta cộng lại được = 1)
2. Cộng các phần tử trong mảng và không tính nếu phần tử xuẩt hiện lần thứ 2 trở lên.
{=sum(vungso/countif(vungso,vungso))}
Ý tưởng thì giống như trên như ở trên có điều mỗi lần lước qua một phần tử trong mảng ta không tính giá trị là 1 là tính giá trị là chính con số đó.

3. Xếp hạng liên tục không dùng VBA =1+SUMPRODUCT((VungRank>A2)*(1/COUNTIF(VungRank,VungRank)))
Hoặc {=SUM(1/(IF(VungRank>A2,COUNTIF(VungRank,VungRank),9.999999E+307)))+1}

A2: ô đầu tiên của VungRank, ví dụ: View attachment 4247

Đó là các cách tính đơn giản có thể nó còn hơi tối nghĩa. Mong các cao thủ có các hàm hay hơn hoặc các công thức khác lợi hại hơn cho mục đích khác.

Bổ sung ngày: 3/10/2007
Trong vùng số chỉ cẩn xóa đi 1 phần tử là công thức này lỗi ngay, hjk
 
Lần chỉnh sửa cuối:
em bầu trọn cho công thức này độc đáo nhé
=lookup(rept("z",255),choose({1;2},"",index($a$2:$a$101,match(true,index(isna(match($a$2:a$10,$b$1:b1,0)),0),0))))
công thức này rất lạ của hoamattroicoi thành viên hải phòng
em chỉ có thể copy nguyên công thức vào vận dụng thôi mặc dù đã biết qua mấy hàm đơn trên rồi
bác leduythuong và mọi người có góp ý và giải thích như bác overac giải thích công thức trên được không
http://www.giaiphapexcel.com/forum/showthread.php?64312-t%c3%acm-t%c3%aan-tr%c3%b9ng-v%c3%a0-t%c3%aan-kh%c3%a1ch-h%c3%a0ng/page2


hì hì . Sao bạn không hỏi hoa mặt trời cho rõ ?. Theo tôi thì học công thức này bằng cách chia nhỏ công thức ra thành nhiều cột thì sẽ thấy . Chứ giải thích tôi không giải thích được . Kỹ năng diễn đạt thuộc loại yếu . --=0. Công thức trên chỉ cần dùng bẫy lỗi là ok mà không cần dùng lookup(),rept()hay choose()
 
Phải công nhận công thức thì có sẵn hết rồi, nhưng vận dụng và kết hợp chúng với nhau là cả 1 vấn đề.
Cảm ơn các anh chị đã đóng góp.
 

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

Back
Top Bottom