PDA

View Full Version : Lại vấn đề về #NA trong excel tôi không thể làm được mong sự giúp đỡ và giải thích



icebird
22-08-09, 09:44 PM
Đây là một ví dụ mà tôi luôn gặp phải mà chưa có giải pháp nào thực hiện được, mong các bạn làm giúp và giải thích cho tôi

duongdv
22-08-09, 09:57 PM
Trong sheet Du lieu PS tại cột thuê bao bạn định dạng dữ liệu là kiểu kiểu số
nhưng trong sheet Du Lieu Goc tại cột số máy bạn lại định dạng dữ liệu là kiểu văn bản Text.
Bởi vậy công thức của
=VLOOKUP(B2,'DU LIEU PS'!$B$2:$C$5,2,0)
bạn sẽ bị sai do công thức sẽ lấy giá trị là kiểu số tại ô B2 và dò tìm và so sánh với vùng dữ liệu 'DU LIEU PS'!$B$2:$C$5 được định dạng là text nên công thức sẽ báo như vậy.

Khi gặp trường hợp như vậy, bạn đã kiểm tra công thức và thây công thức đúng thì bạn nên kiểm tra lại dữ liệu nhé.
Để kiểm tra dữ liệu bạn đặt con trỏ vào vị trí cần kiểm tra và vào Cell--> chọn Tab Number và xem dữ liệu là kiểu gì.
Hoặc dể kiểm tra dữ liệu xem có phải là kiểu text không bạn có thể dùng công thức
= Istext(A1)
Kết quả nếu ô A1 là dữ liệu kiểu text thì kết quả trả về là True ngược lại là False

le tin
22-08-09, 09:59 PM
Đây là một ví dụ mà tôi luôn gặp phải mà chưa có giải pháp nào thực hiện được, mong các bạn làm giúp và giải thích cho tôi
Bạn format text ở cột B là đwợc

icebird
22-08-09, 10:19 PM
Sao tôi format lại cho 2 sheet giống nhau rồi mà vẫn không được vậy, mong có sự giải thích chi tiết hơn nhé

duongdv
22-08-09, 10:27 PM
Sao tôi format lại cho 2 sheet giống nhau rồi mà vẫn không được vậy, mong có sự giải thích chi tiết hơn nhé
Mình đã thử fomat rồi thấy công thức của bạn không còn báo lỗi nữa mà.
Nếu khi format rồi mà vẫn không được bạn kích đúp chuột vào ô đó hoặc xóa dữ liệu tại cột mà bạn vừa format đi và nhập lại là thấy cống thức hoạt động ngay.
Chúc thanh công!

hungnq1
22-08-09, 10:35 PM
Bạn format xong cột B ở sheet dữ liêu PS rồi nhập lại giá trị ở dạng text là OK

icebird
22-08-09, 10:45 PM
cảm ơn bạn tôi đã format lại nhưng dòng được dòng không, chưa hiểu lý do. Nếu phải nhập lại thì dữ liệu của tôi những 278000 dòng nên chuyện nhập lại là không thể. Gay quá còn 2 ngày nữa không tìm ra thì toi mất

Kim.Nguyen
22-08-09, 11:46 PM
cảm ơn bạn tôi đã format lại nhưng dòng được dòng không, chưa hiểu lý do. Nếu phải nhập lại thì dữ liệu của tôi những 278000 dòng nên chuyện nhập lại là không thể. Gay quá còn 2 ngày nữa không tìm ra thì toi mất
Bạn thử sửa lại công thức ở cột F chưa? Sửa lại vầy nè (ở F2):

=VLOOKUP(B2*1,'DU LIEU PS'!$B$2:$C$5,2,0)
Mình sửa xong, kéo xuống thử đến F5, chạy ngon!

BNTT
22-08-09, 11:57 PM
cảm ơn bạn tôi đã format lại nhưng dòng được dòng không, chưa hiểu lý do. Nếu phải nhập lại thì dữ liệu của tôi những 278000 dòng nên chuyện nhập lại là không thể. Gay quá còn 2 ngày nữa không tìm ra thì toi mất
Tôi nghĩ cái cách nhân thêm 1 vào tham số đem đi dò (B2*1) là hay đó, khỏi cần định dạng lại bảng tính gì hết. Nếu bản thân nó là số, thì *1 là chuyện thường, mà nếu B2 không phải là số, sau khi *1 nó sẽ biến thành số. Chỉ có điều, không biết cái cột B bên Sheet DU LIEU PS của bạn nó phải hoàn toàn là số không mà thôi. Nếu không phải là một cái gì quá quan trọng cần bảo mật, bạn nén lại rồi gửi luôn cái file có 278000 đó lên đây tôi xem thử cho.

sealand
23-08-09, 12:22 AM
Nếu là mã máy bạn nên chuyển sang dạng Text sẽ có lợi cho việc sử lý về sau. Mình thấy dữ liệu của bạn lớn vậy thì nên sử lý chuyển sang text 1 cách thật chắc chắn mới ổn. Bạn thấy nếu dữ liệu có dạng số kèm theo dấu ' ở đầu thì chắc chắn là Text. Bạn dùng Macro sau chuyển toàn bộ sang Text bảo đảm chắc chắn hàm Vlookup không còn lỗi. (VBA thì được chứ công thức lại không được mới bực mình chứ.Mình viết cho Ex.2003 nên dòng tối đa có vậy, dòng của bạn nhiều vậy chắc Ex.2007 bạn nới số dòng cho phù hợp nhé)



Sub NumToText()
Dim clls As Range
For Each clls In Sheet1.Range("B2:B" & Sheet1.[B56356].End(xlUp).Row)
clls = "'" & clls
Next
For Each clls In Sheet2.Range("B2:B" & Sheet2.[B56356].End(xlUp).Row)
clls = "'" & clls
Next
End Sub
Còn khi nhập mới bạn cứ nhập thêm dấu nháy đó thì khỏi phân vân chi nữa.

caphile
23-08-09, 08:47 AM
cảm ơn bạn tôi đã format lại nhưng dòng được dòng không, chưa hiểu lý do. Nếu phải nhập lại thì dữ liệu của tôi những 278000 dòng nên chuyện nhập lại là không thể. Gay quá còn 2 ngày nữa không tìm ra thì toi mất

Có j đâu mà nói mãi chuyện này vậy. khi bạn format xong thì kick chuột vào các ô ở cột B trong DL Goc là được mà.

BNTT
23-08-09, 08:49 AM
Có j đâu mà nói mãi chuyện này vậy. khi bạn format xong thì kick chuột vào các ô ở cột B trong DL Goc là được mà.
Có chứ bạn. Bạn không đọc kỹ đoạn bạn trích dẫn à? Chẳng lẽ Format xong rồi ngồi click chuột 278000 lần cho 278000 ô?

sealand
23-08-09, 09:47 AM
Mình nghĩ dù cho đây là chuyện "nhỏ như con thỏ" nhưng không giải quyết tốt thì đôi khi nhận được những kết quả chẳng nhỏ tí nào. Mình là kế toán nên đã từng quá mệt cái số hiệu tài khoản khi là số, khi là text rồi.

icebird
23-08-09, 09:34 PM
Bạn thử sửa lại công thức ở cột F chưa? Sửa lại vầy nè (ở F2):

=VLOOKUP(B2*1,'DU LIEU PS'!$B$2:$C$5,2,0)
Mình sửa xong, kéo xuống thử đến F5, chạy ngon!

Cảm ơn bạn, đúng là mình có *1 ở dữ liệu nhưng lại là ở DU LIEU PS nên ko nhận ra, bây giờ mình thêm ở *1 ở phần dữ liệu đặt công thức nên chạy cũng ổn. Một rắc rối nữa lại xảy ra, ở phần số điện thoại thì công thức chạy được nhưng ở phần tài khoản Intenet ( dạng chữ ) thì lại không cho kết quả, ( vd 1234555666 thì chạy được, phần tài khoản internet là thuylinhls thì cho cái *1 vào thì cho luôn kết quả #value! )

BNTT
23-08-09, 11:30 PM
Cảm ơn bạn, đúng là mình có *1 ở dữ liệu nhưng lại là ở DU LIEU PS nên ko nhận ra, bây giờ mình thêm ở *1 ở phần dữ liệu đặt công thức nên chạy cũng ổn. Một rắc rối nữa lại xảy ra, ở phần số điện thoại thì công thức chạy được nhưng ở phần tài khoản Intenet ( dạng chữ ) thì lại không cho kết quả, ( vd 1234555666 thì chạy được, phần tài khoản internet là thuylinhls thì cho cái *1 vào thì cho luôn kết quả #value! )
Trong file ví dụ bạn đã gửi, chẳng có chỗ nào nói tới Internet hết, nên chúng tôi không giúp được.

Nhưng... thiệt tình chẳng biết phải nói với bạn như thế nào... Động tác *1, là nhân vào một "ký tự số" để chuyển nó thành con số, và nó chỉ có tác dụng với "ký tự số" mà thôi... Chứ có ai mà đi lấy chữ mà nhân thêm 1, bạn cứ nghĩ bình thường đi, nó sẽ ra cái gì? Chẳng lẽ bạn lại không biết chuyện đó? Chẳng lẽ bạn không biết rằng chỉ có những con số mới có thể cộng trừ nhân chia hay sao?