Dùng hàm index kết hợp match nhưng không ra kết quả

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

nguyentrongdung

Thành viên mới
Tham gia
22/12/11
Bài viết
38
Được thích
8
Nhờ các anh chỉ giúp , trong quá trình kết hợp hàm Index và Match, không hiểu tại sao kết quả chỉ ra NA ạ.

Anh chị xem ô màu vàng trong file đính kèm

Cám ơn anh chị em
 

File đính kèm

File đính kèm

Dùng hàm index kết hợp match nưng không ra kết quả​


1/ Bạn nên chỉnh lại tiêu đề một chút.
2/ Vẫn chưa thấy file đính kèm đâu bạn ơi.

Dùng hàm index kết hợp match nưng không ra kết quả​


1/ Bạn nên chỉnh lại tiêu đề một chút.
2/ Vẫn chưa thấy file đính kèm đâu bạn ơi.
anh ơi, em attach rồi ạ, do file trước hơn 3M, chắc nặng quá nên ko attach đc ạ

Bạn kiểm tra lại nhé.
Bạn ơi, vì sao trước hàm left lại có 2 dấu -- vậy? tớ không hiểu cơ chế nó. Thk
 
Em tưởng N nó chuyển chữ thành số được mà không phải.
-- thì nó lộn xộn quá, kiêm đa chức năng gê.
N mà gặp text thì luôn trả về 0.
Người ta dùng N để comment công thức. Công dụng khác là ép range thành array. Nhưng cái này hơi khó, đừng hỏi thêm.

-- (hai dấu trừ) thì chả có gì đa chức năng cả. Chỉ vì bạn không có căn bản về toán tử (operators) cho nên không biết nó.
- (dấu trừ) theo đại số học có hai nghĩa, nghĩa nào tùy theo vị trí của nó.
Nằm trong vị trí đơn vế (chỉ có một vế) thì nó là toán tử đổi dấu, -a là đối dấu trị a, tương đương với (-1)*a
Nằm trong vị trí ngẫu vế (giữa 2 vế) thì nó là phép trừ. a - b là đem a trừ b
Đừng nghĩ rằng a - b thì cũng giống như đổi dấu b rồi đem cộng cho a. Theo lô gic toán thì điều đó đúng. Theo luật thứ tự toán tử thì phải cẩn thận hơn. Luật thứ tự tính toán đặt toán tử đổi dấu ở vị trí khá cao (tính trước), cao hơn */, trong khi */ cao hơn +-.

-- (hai dấu trừ) chỉ là một mẹo, nó mang nghĩa giản dị là đổi dấu hai lần. Kết quả là trở về số in hệt số cũ.
Vậy nó dùng để làm gì?
Nó là cách hiệu quả nhất để ép kiểu chuỗi thành số. Và tôi nói từ "nhất" ở đây một cách đầy tự tin, không sợ mang tiếng chủ quan. Bởi vì câu này dựa trên lô gic cấu trúc máy tính.
Dĩ nhiên, khi nói thế, tôi khẳng định rằng nó hiệu quả hơn thuật ép kiểu bằng cách +0 hay *1.
Có hai lý do:
1. đổi dấu là con toán căn bản của CPU, xử lý rất rất nhanh, dẫu phải làm 2 lần vẫn nhanh hơn + hoặc *. Đồng thời, đổi dấu chỉ cần 1 vế, +0 và *1 cần thêm vế thứ hai là hằng số 0/1
2. vì đổi dấu có thứ tự tính rất cao cho nên ít khi phải dùng đến dấu ngoặc () để phân biệt với các con toán kế tiếp. (Phép cộng có vị trí khá thấp cho nên +0 là cách khó nhất.)
 
...
Với lại có code VBA cơ bản nào để test tốc độ này không bác?
Đọc bảng chỉ dẫn code máy (machine code) của CPU. Nó sẽ cho biết chính xác mỗi lệnh máy mất bao nhiêu tích (đồng hồ). Tuy nhiên, trước khi tính toán, chương trình còn phải gọi một hàm để thực sự ép kiểu. Khi ép kiểu là ta đặt một biểu thức có trị text vào tình trạng buộc Excel gọi hàm này.
Sau khi hàm ép kiểu trả về trị số rồi thì --, +0 hay *1 chỉ là con toán vô thưởng vô phạt.
 
Web KT

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

Back
Top Bottom