Cho hỏi về lỗi của hàm index

  • Thread starter Thread starter ghzktc
  • Ngày gửi Ngày gửi
Liên hệ QC

ghzktc

Thành viên mới
Tham gia
22/9/09
Bài viết
35
Được thích
2
Mình có 1 file sử dụng hàm index để dò tìm tham số
Nhưng có 2 giá trị 1.4 và 1.5 là ko cho ra được kết quả, các giá trị khác thì được hết, không hiểu vì sao nữa, các bạn coi dùm mình với
Ô màu xanh là ô nhập giá trị cần tra
 

File đính kèm

Nhập công thức này ở ô D2 và xem lại công thức của Bạn trong các Name có khác với cái này không?
Mã:
=INDEX(Ko!$B$3:$R$33;MATCH($A2;Ko!$A$3:$A$33;1);MATCH($D$1;Ko!$A$2:$R$2;1))
 
name đúng mà bạn, tất cả các giá trị khác đều được hết, chỉ trừ khi nhập vào 1.4 hoặc 1.3 vào ô c2 là bị lỗi thôi, các giá trị khác nhảy bình thường mà
 
mình nhầm xíu, 1.4 và 1.5 chứ ko phải 1.3
 
Lỗi này rất lạ: ô D1=B1+0.2, nếu bằng số khác 1.6 thì không sao, mà hễ bằng 1.6 thì lỗi. Tôi đã kiểm tra: gõ bằng tay 1.6 vào D1 thì không bị lỗi, dù cho kiểm tra =B1+0.2 = 1.6 ra kết quả True.
Cái anh Bill này bị gì ấy.
 
cảm ơn anh, hôm nay em làm bên sheet Ko, ở ô 1.6 em cho bằng 1.4 + 0.2 thì ô D1 lại nhảy bình thường, chẳng hiểu bị sao, nhưng dù sao cũng nhảy bình thường rồi
 
Lỗi này rất lạ: ô D1=B1+0.2, nếu bằng số khác 1.6 thì không sao, mà hễ bằng 1.6 thì lỗi. Tôi đã kiểm tra: gõ bằng tay 1.6 vào D1 thì không bị lỗi, dù cho kiểm tra =B1+0.2 = 1.6 ra kết quả True.
Cái anh Bill này bị gì ấy.
không phải đâu thầy ơi
thứ nhất tác giả đã dùng name trùng tên với cột
thứ 2 dữ liệu hàm index là tham chiếu theo góc vuông , tác giả đã không dùng name chính xác để hàm dò được như ý
thứ 3 dữ liệu tác giả đã dùng không đồng nhất
thầy xem em đã chỉnh chút xíu name là xong
 

File đính kèm

không phải đâu thầy ơi
thứ nhất tác giả đã dùng name trùng tên với cột
thứ 2 dữ liệu hàm index là tham chiếu theo góc vuông , tác giả đã không dùng name chính xác để hàm dò được như ý
thứ 3 dữ liệu tác giả đã dùng không đồng nhất
thầy xem em đã chỉnh chút xíu name là xong
Bạn thử hai công thức này rồi so sánh kết quả nhé:
Mã:
=MATCH(1.4+0.2,{1.4,1.6,1.8,2},0)
Mã:
=MATCH(1.6+0.2,{1.4,1.6,1.8,2},0)
Xét về mặt cấu trúc thì hai công thức hoàn toàn giống nhau nhưng một cái cho kết quả một cái trả về #N/A.
Tôi cũng nghĩ đây là lỗi của bác Bill.

Hơn nữa đặt Name trùng với tên cột không ảnh hưởng gì cả. Khi công thức tham chiếu đến một cột nào đó thì tham chiếu sẽ có dạng A:A. Vì thế, đặt một Name có tên A không ảnh hưởng gì cả.
 
Lần chỉnh sửa cuối:
Đặt name trùng tên cột đúng là không nên. Nhưng rõ ràng là trên file gốc, D1 = B1 + 0.2, kết quả là 1.6, và 6 ô C2:D4 bị lỗi. Nhưng chỉ cần gõ tay 1.6 vào D1 là hết lỗi
Nếu nói lỗi do Name thì vẫn còn lỗi mới phải chứ?
Hoặc suy luận cách khác, tại sao chỉ khi nào B1 = 1.4 thì mới lỗi, tất cả các số khác thì không lỗi? (Vẫn chưa sửa Name nhé)

Một cách sửa khác mà không phải sửa name, là lấy Int(D1) thay vì D1 để đi dò tìm.
 
Lần chỉnh sửa cuối:
Bạn thử hai công thức này rồi so sánh kết quả nhé:
Mã:
=MATCH(1.4+0.2,{1.4,1.6,1.8,2},0)
Mã:
=MATCH(1.6+0.2,{1.4,1.6,1.8,2},0)
Xét về mặt cấu trúc thì hai công thức hoàn toàn giống nhau nhưng một cái cho kết quả một cái trả về #N/A.
Tôi cũng nghĩ đây là lỗi của bác Bill.
cũng có thể là lỗi của bác bill
nhưng bài của tác giả thì khác đó
 
Đặt name trùng tên cột đúng là không nên. Nhưng rõ ràng là trên file gốc, D1 = B1 + 0.2, kết quả là 1.6, và 6 ô C2:D4 bị lỗi. Nhưng chỉ cần gõ tay 1.6 vào D1 là hết lỗi
Nếu nói lỗi do Name thì vẫn còn lỗi mới phải chứ?
Hoặc suy luận cách khác, tại sao chỉ khi nào B1 = 1.4 thì mới lỗi, tất cả các số khác thì không lỗi? (Vẫn chưa sửa Name nhé)

Một cách sửa khác mà không phải sửa name, là lấy Int(D1) thay vì D1 để đi dò tìm.
D1 là số lẻ làm sao dùng hàm INT() được bạn (INT(1.6)=1). Nếu muốn sửa cách này thì dùng hàm ROUND() (ROUND(D1,1)). Tuy nhiên vẫn không phải do lỗi số lẻ như trước đây. Vì test công thức =1.4+0.2=1.6 vẫn trả về kết quả True
 
D1 là số lẻ làm sao dùng hàm INT() được bạn (INT(1.6)=1). Nếu muốn sửa cách này thì dùng hàm ROUND() (ROUND(D1,1)). Tuy nhiên vẫn không phải do lỗi số lẻ như trước đây. Vì test công thức =1.4+0.2=1.6 vẫn trả về kết quả True

Xin lỗi đã vội nên ghi sai, đúng là phải Round(D1,1). Tôi cũng đã test =D1=1.6 và vẫn True, nhưng thử round 1 số lẻ thì kết quả đúng như mong muốn.
 
không phải đâu thầy ơi
thứ nhất tác giả đã dùng name trùng tên với cột
thứ 2 dữ liệu hàm index là tham chiếu theo góc vuông , tác giả đã không dùng name chính xác để hàm dò được như ý
thứ 3 dữ liệu tác giả đã dùng không đồng nhất
thầy xem em đã chỉnh chút xíu name là xong
cảm ơn bạn, trước khi đọc bài của bạn mình đã dùng công thức làm cho dữ liệu đồng nhất nên đã chạy bình thường rồi, nhưng cái này ko phải do tự nghĩ ra mà chỉ là tình cờ dùng công thức để kiểm tra các tham số có cách nhau đúng 0.2 ko mà thôi, ai ngờ mèo mù vớ cá rán nên được luôn.
nhưng nếu bạn nói name ko chính xác thì giải thích dùm mình vì sao chỉ mỗi giá trị 1.6 ở ô D1 là bị lỗi, mình có sửa lại name đâu, chỉ tình cờ dùng công thức ở dãy trên cùng thì được luôn mà
 
Web KT

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

Back
Top Bottom