Mình không hiểu cách hoạt động của các công thức này ạ

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Kemmie Nguyen

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
28/6/24
Bài viết
17
Được thích
4
Mình đã được giúp đỡ về công thức theo bài viết này.
Mình có thử tách các phần của công thức nhưng nó trả về kết quả lỗi nên mình không hiểu, mọi người có thể giải thích giúp mình không?
1719602515279.png
Mong được hướng dẫn:
  • Hàm SUM trong công thức chung, mình tách ra thì nó không trả kết quả mà bị lỗi #VALUE. Hàm SUM này mang ý nghĩa gì ạ?1719603327806.png
  • Hàm VLOOKUP trong công thức chung 1719602844903.png
    Do giá trị mình tìm nằm trong các khoảng: 100,000đ-500,000đ; 500,000đ-1,000,000đ;...1719602896846.png
    Mình muốn hỏi là có thể sử dụng hàm VLOOKUP để trả về kết quả theo dò tìm trong khoảng giá trị hay sao ạ?
 

File đính kèm

  • 1719602596359.png
    1719602596359.png
    26.6 KB · Đọc: 4
Mong được hướng dẫn:
  • Hàm SUM trong công thức chung, mình tách ra thì nó không trả kết quả mà bị lỗi #VALUE. Hàm SUM này mang ý nghĩa gì ạ?

    1719604370445.png
J2:J5=A2 ==> So sánh từ J2 đến j5, cái nào bằng A2 thì đặt trị true, không thì false. Kết quả (nhấn F9) sẽ ra mảng { True, False, False, False } (trị Boolean)
Đem nhân mảng đó cho 1 có nghĩa là ép kiểu nó thành số (trị Numeric) ==> { 1, 0, 0, 0 }
Sum lại thành 1
Rốt cuộc là chỗ ấy xác định nếu tên có trong cái list J2:J5 thì sẽ ra >=1, không thì sẽ ra 0
Công thức này sai là nếu tên xảy ra nhiều lần trong list thì sum sẽ cho ra số lần ấy, và đem so sánh với 1 sẽ ra False.
Đáng lẽ phép so sánh phải là >=
Tuy nhiên tôi cũng chả hiểu sao tác giả lại dùng phép đếm này trong khi hàm Match có thể giải quyết khá dễ dàng.

  • Hàm VLOOKUP trong công thức chung View attachment 302037
    Do giá trị mình tìm nằm trong các khoảng: 100,000đ-500,000đ; 500,000đ-1,000,000đ;...Mình muốn hỏi là có thể sử dụng hàm VLOOKUP để trả về kết quả theo dò tìm trong khoảng giá trị hay sao ạ?
Bạn học Excel chưa kỹ. VLookup là một trong những hàm căn bản của Excel, không hiểu rõ nó thì không thể nói mình biết Excel.
Tham số thứ tư của VLookup là chỉ dẫn cách dò. Nếu True thì là phép dò gần đúng, bảng dò bắt buộc phải sắp xếp từ nhỏ đến lớn và hàm sẽ dò từ trị lớn xuống trị nhỏ, khi gặp một tị nhỏ hơn hay bằng trị cần dò thì nó coi như đã tìm được. Nếu False thì coi như phép dò chính xác, bảng dò không cần sắp xếp, hàm bắt buộc phải dò cho đến khi gặp trị chính xác.
Vì vậy:
1. dùng hàm VLookup (và Match) thì phải luôn luôn chú ý đến tham số thứ tư (với Match thì là tham thứ 3)
2. muốn dò theo "khoảng" thì phải đặt tham số cuối là True, và phải sắp xếp bảng dò, dò được hay không tùy thuộc cách đặt dữ liệu diễn tả các khoảng.
 
Lần chỉnh sửa cuối:
J2:J5=A2 ==> So sánh từ J2 đến j5, cái nào bằng A2 thì đặt trị true, không thì false. Kết quả (nhấn F9) sẽ ra mảng { True, False, False, False } (trị Boolean)
Đem nhân mảng đó cho 1 có nghĩa là ép kiểu nó thành số (trị Numeric) ==> { 1, 0, 0, 0 }
Sum lại thành 1
Rốt cuộc là chỗ ấy xác định nếu tên có trong cái list J2:J5 thì sẽ ra >=1, không thì sẽ ra 0
Công thức này sai là nếu tên xảy ra nhiều lần trong list thì sum sẽ cho ra số lần ấy, và đem so sánh với 1 sẽ ra False.
Đáng lẽ phép so sánh phải là >=
Tuy nhiên tôi cũng chả hiểu sao tác giả lại dùng phép đếm này trong khi hàm Match có thể giải quyết khá dễ dàng.


Bạn học Excel chưa kỹ. VLookup là một trong những hàm căn bản của Excel, không hiểu rõ nó thì không thể nói mình biết Excel.
Tham số thứ tư của VLookup là chỉ dẫn cách dò. Nếu True thì là phép dò gần đúng, bảng dò bắt buộc phải sắp xếp từ nhỏ đến lớn và hàm sẽ dò từ trị lớn xuống trị nhỏ, khi gặp một tị nhỏ hơn hay bằng trị cần dò thì nó coi như đã tìm được. Nếu False thì coi như phép dò chính xác, bảng dò không cần sắp xếp, hàm bắt buộc phải dò cho đến khi gặp trị chính xác.
Vì vậy:
1. dùng hàm VLookup (và Match) thì phải luôn luôn chú ý đến tham số thứ tư (với Match thì là tham thứ 3)
2. muốn dò theo "khoảng" thì phải đặt tham số cuối là True, và phải sắp xếp bảng dò, dò được hay không tùy thuộc cách đặt dữ liệu diễn tả các khoảng.
Mình cảm ơn bạn đã giải đáp. Hàm VLOOKUP sau khi bạn giải thích thì mình được nắm rõ hơn về cách dùng rồi. Còn 1 chỗ này là về giá trị tìm kiếm, bình thường mình chỉ biết sử dụng giá trị tìm kiếm là cố định hàng+cột hoặc không cố định, trong hàm VLOOKUP đó tại sao lại sử dụng giá trị tìm kiếm chỉ cố định cột ạ? Có cần thiết không ạ?
1719615569622.png

Còn về phía hàm SUM thì mình cảm thấy sao nó cao siêu quá mình chỉ hiểu được phần nào:wacko:Trong trường hợp đổi sang hàm MATCH thì có thể thay thế như thế nào ạ?
Mình có tự làm thử (mình hơi cùi bắp), thì thấy là khi nào có đúng tên đó trong danh sách thì nó mới trả kết quả..1719615336599.png
 
Mình có tự làm thử (mình hơi cùi bắp), thì thấy là khi nào có đúng tên đó trong danh sách thì nó mới trả kết quả..
Tham số thứ tư của VLookup là chỉ dẫn cách dò. Nếu True thì là phép dò gần đúng, bảng dò bắt buộc phải sắp xếp từ nhỏ đến lớn và hàm sẽ dò từ trị lớn xuống trị nhỏ, khi gặp một tị nhỏ hơn hay bằng trị cần dò thì nó coi như đã tìm được. Nếu False thì coi như phép dò chính xác, bảng dò không cần sắp xếp, hàm bắt buộc phải dò cho đến khi gặp trị chính xác.
Vì vậy:
1. dùng hàm VLookup (và Match) thì phải luôn luôn chú ý đến tham số thứ tư (với Match thì là tham thứ 3)
2. muốn dò theo "khoảng" thì phải đặt tham số cuối là True, và phải sắp xếp bảng dò, dò được hay không tùy thuộc cách đặt dữ liệu diễn tả các khoảng.
Bạn đọc kỹ lại bài của anh VetMini thì sẽ hiểu.
 
Người nào đưa ra bài giải theo như ở bài #1 là cố tình chọc thiên hạ cho nên đưa ra cách giải quyết khá lằng nhằng.

Thứ nhất:
Trong bảng phụ (dùng để tra), cột [TEN] hoàn toàn không liên quan gì đến các cột còn lại, đem ghép chung cúng thành một bảng thì nghe có vẻ như "thâu gọn" nhưng trên thực tế là làm rườm rà thêm cho người đọc.

Thứ hai:
Công thức dùng hai hàm VLookup quá luộm thuộm. Đáng lẽ chỉ nên dùng 1 hàm VLookup thôi, tham số thứ 3 xác định là có phải khách hàng thân, và tra cứu đúng cột phần trăm [DIS] hay [DIS_1]
 

Mình cảm ơn bạn đã giải đáp. Hàm VLOOKUP sau khi bạn giải thích thì mình được nắm rõ hơn về cách dùng rồi. Còn 1 chỗ này là về giá trị tìm kiếm, bình thường mình chỉ biết sử dụng giá trị tìm kiếm là cố định hàng+cột hoặc không cố định, trong hàm VLOOKUP đó tại sao lại sử dụng giá trị tìm kiếm chỉ cố định cột ạ? Có cần thiết không ạ?
...
($B2) : Coi như cần thiết.
Cố định cột thì gần như bắt buộc, vì nó chỉ đúng cột, không thay đổi.
Không cố định dòng thì bắt buộc. Ở dòng 2 thì nó dùng trị ở B2 (500000). Nhưng qua dòng 3 thì nó phải dùng trị ở B3 (1000000). Luật Fill Down là vậy. Nếu bạn cố định dòng luôn thì luật fill down vô hiệu, và nó luôn luôn là 500000.

Chú thích: đáng lẽ A2 cũng phải cố định cột.

Còn về phía hàm SUM thì mình cảm thấy sao nó cao siêu quá mình chỉ hiểu được phần nào:wacko:Trong trường hợp đổi sang hàm MATCH thì có thể thay thế như thế nào ạ?
Mình có tự làm thử (mình hơi cùi bắp), thì thấy là khi nào có đúng tên đó trong danh sách thì nó mới trả kết quả.
Như đã nói trên, người nào cho bạn cái giải pháp ở bài #1 có lẽ đùa giỡn.
Người ở trình độ này không viết như vậy.
Và không thiết kế bảng tra như vậy. Vì bảng tra đúng đắn phải thêm một dòng trị 0.

Công thức đứng đắn cho trường hợp có bảng tra như thế là:
VLookup($B2, $F$2:$I$6, If(IsNA(Match($A2, $J$2:$J$5, False), 3, 4), True)
Việc có tìm thấy tên ở bảng VIP hay không đưa thẳng ra cột kết quả là 3 hay 4 (cột H hay I) luôn. Khỏi cần phải chọn 1 trong 2 hàm VLookup.
(IsNA là lỗi mà hàm Match trả về khi không dò thấy trị trong bảng)
 
Web KT

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

Back
Top Bottom