Xin chỉ cách dùng hàm excel để cập nhật dữ liệu. (1 người xem)

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

tranviethung

Thành viên mới
Tham gia
26/8/08
Bài viết
37
Được thích
3
Mình có 1 bảng phân vùng (mỗi vùng gồm n tỉnh), và 1 bảng nhập DS tỉnh như trong file excel gửi kèm. Bảng phân vùng được nhập sẵn, yêu cầu là khi nhập dữ liệu bảng tỉnh (tên tỉnh có trong bảng phân vùng) thì mã vùng sẽ được tự động cập nhật tương ứng. Ví dụ, ở cột Tỉnh (bảng Tỉnh) ta nhập Hà Nội thì ở cột Vùng giá trị tự động cập nhật là 1,..
Mình dùng if và countif nhưng công thức dài quá :D
Mọi người giúp mình nhé! xin cám ơn!

 

File đính kèm

Lần chỉnh sửa cuối:
Mình có 1 bảng phân vùng (mỗi vùng gồm n tỉnh), và 1 bảng nhập DS tỉnh như trong file excel gửi kèm. Bảng phân vùng được nhập sẵn, yêu cầu là khi nhập dữ liệu bảng tỉnh (tên tỉnh có trong bảng phân vùng) thì mã vùng sẽ được tự động cập nhật tương ứng. Ví dụ, ở cột Tỉnh (bảng Tỉnh) ta nhập Hà Nội thì ở cột Vùng giá trị tự động cập nhật là 1,..
Mọi người giúp mình nhé! xin cám ơn!

nhập cho đúng tên nha, nhập sai nó ko có kiếm ra được đâu đó
Mã:
O3=LOOKUP(2,1/COUNTIF(OFFSET($A$3:$A$11,,$B$2:$I$2),N3),$B$2:$I$2)
 
nhập cho đúng tên nha, nhập sai nó ko có kiếm ra được đâu đó
Mã:
O3=LOOKUP(2,1/COUNTIF(OFFSET($A$3:$A$11,,$B$2:$I$2),N3),$B$2:$I$2)
Cám ơn bạn, nhập hàm vào thì cho kết quả đúng rồi nhưng bạn có thể giải thích thêm cho mình hiểu về 2 đối số đầu trong hàm Lookup được không? Mình cũng đã thử làm với hàm Index vs Match cũng cho ra kết quả nhưng cấu trúc bảng lại phải thay đổi chút :D
 
Cám ơn bạn, nhập hàm vào thì cho kết quả đúng rồi nhưng bạn có thể giải thích thêm cho mình hiểu về 2 đối số đầu trong hàm Lookup được không? Mình cũng đã thử làm với hàm Index vs Match cũng cho ra kết quả nhưng cấu trúc bảng lại phải thay đổi chút :D

nếu bạn có thể sử dụng match & index thì tốt hơn, vì hàm lookup là hàm mảng, nên về tốc độ tính nó sẻ chậm hơn

về cú pháp hàm lookup như sau
lookup(giá trị tìm,{mảng tìm},{mảng kết quả})
giá trì tìm: 2
mảng tìm: 1/COUNTIF(OFFSET($A$3:$A$11,,$B$2:$I$2),N3)
mảng kết quả: B$2:$I$2

===========
bây giờ nói tời offset và countif
offset thì như vậy OFFSET($A$3:$A$11,,$B$2:$I$2),(cái màu xanh 1,2,3,4,,,,,,,tôi ko nhứ cụ thể trong file)========> B1:B11,C1:C11,D1:D11,v.v. =========> rồi countif sẻ đếm xem N3 có trong từng range đó ko=====> nó tạo ra một mảng {1,0,0,0,...vv.v.v.} cái nào có thì =1, ko có thì =0
=>1/{1,0,0,0,...vv.v.v.}==>{1,DiV#0,v.v.v.} (1/1=1, 1/0 thì lổi)

bi giờ lookup làm việc
lookup(2,{1,DiV#0,v.v.v.},{ket qua}), nó sẻ trả về còn số mà nó gặp đâu tiên từ bên phải qua, rồi trải lại đúng với thứ tự đó trong mảng kết quả

vậy tại sao giá trị đi tìm lại là 2?
tại vì trong mảng đi tìm của chúng ta có nhừng giá trị sau (lớn nhất là số 1, và các lổi DIV#0)
nếu chúng ta lấy giá trị đi tìm là 1, thì vài trường hợp ví dụ như {1,0.5,0.3} nó sẻ tìm chính xác con số 1, mà chúng ta thì chỉ cần tìm con nào là con số là được rồi

vậy số 2 đó có thể là 3,4,5,6...........được ko,===>được
bạn gõ 2 cthức sau bạn sẻ thấy
lookup(1,{1,0.5,0.3})

lookup(2,{1,0.5,0.3})
 
nếu bạn có thể sử dụng match & index thì tốt hơn, vì hàm lookup là hàm mảng, nên về tốc độ tính nó sẻ chậm hơn

về cú pháp hàm lookup như sau
lookup(giá trị tìm,{mảng tìm},{mảng kết quả})
giá trì tìm: 2
mảng tìm: 1/COUNTIF(OFFSET($A$3:$A$11,,$B$2:$I$2),N3)
mảng kết quả: B$2:$I$2

===========
bây giờ nói tời offset và countif
offset thì như vậy OFFSET($A$3:$A$11,,$B$2:$I$2),(cái màu xanh 1,2,3,4,,,,,,,tôi ko nhứ cụ thể trong file)========> B1:B11,C1:C11,D1:D11,v.v. =========> rồi countif sẻ đếm xem N3 có trong từng range đó ko=====> nó tạo ra một mảng {1,0,0,0,...vv.v.v.} cái nào có thì =1, ko có thì =0
=>1/{1,0,0,0,...vv.v.v.}==>{1,DiV#0,v.v.v.} (1/1=1, 1/0 thì lổi)

bi giờ lookup làm việc
lookup(2,{1,DiV#0,v.v.v.},{ket qua}), nó sẻ trả về còn số mà nó gặp đâu tiên từ bên phải qua, rồi trải lại đúng với thứ tự đó trong mảng kết quả

vậy tại sao giá trị đi tìm lại là 2?
tại vì trong mảng đi tìm của chúng ta có nhừng giá trị sau (lớn nhất là số 1, và các lổi DIV#0)
nếu chúng ta lấy giá trị đi tìm là 1, thì vài trường hợp ví dụ như {1,0.5,0.3} nó sẻ tìm chính xác con số 1, mà chúng ta thì chỉ cần tìm con nào là con số là được rồi

vậy số 2 đó có thể là 3,4,5,6...........được ko,===>được
bạn gõ 2 cthức sau bạn sẻ thấy
lookup(1,{1,0.5,0.3})

lookup(2,{1,0.5,0.3})


Hàm OFFSET($A$3:$A$11,,$B$2:$I$2) này mình tưởng nó trả về 1 range thôi chứ nhỉ?
 
Mọi người ai còn cách nào dễ hiểu hơn không nhỉ :?>?
 

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

Back
Top Bottom