Giúp tạo danh sách động trong excel

Liên hệ QC

queluatb

Thành viên thường trực
Tham gia
17/1/11
Bài viết
347
Được thích
41
em có bảng tính muốn tạo danh sách động để kết hợp với hàm vlookup mong mọi người giúp đỡ, e cũng đã làm công thức ở trong rồi nhưng không hiểu sao không trả được kết quả đúng, vì vật tư của e có rất nhiều mã khác nhau, có thể lên đến hàng vài nghìn, mỗi lần thêm mã vật tư lại phải phải vào insert/Name/Define sửa lại sẽ rất mất thời gian và dễ bị nhầm lẫn.
 

File đính kèm

em có bảng tính muốn tạo danh sách động để kết hợp với hàm vlookup mong mọi người giúp đỡ, e cũng đã làm công thức ở trong rồi nhưng không hiểu sao không trả được kết quả đúng, vì vật tư của e có rất nhiều mã khác nhau, có thể lên đến hàng vài nghìn, mỗi lần thêm mã vật tư lại phải phải vào insert/Name/Define sửa lại sẽ rất mất thời gian và dễ bị nhầm lẫn.
Bạn sửa lại Name:
Mã:
=OFFSET(TonDK!$B$4:$E$4,,,COUNTA(TonDK!$B$4:$B$1000))
 

File đính kèm

Với hàm này thì vật tư giới hạn đến số 1000, đúng không bạn, nếu vật tư quá giới hạn 1000 thì lại phải vào insert/Name/Define sửa lại đúng không

Nếu vật tư nhập qua khỏi B1000 thì phải sữa lại.
Trong trường hợp dữ liệu như thế này mình rất thích sử dụng table.
 
Với hàm này thì vật tư giới hạn đến số 1000, đúng không bạn, nếu vật tư quá giới hạn 1000 thì lại phải vào insert/Name/Define sửa lại đúng không
Bạn thêm 3 số 0 nữa, có dùng hết 1 triệu dòng không bạn? Name động là như vậy, bạn muốn sửa thì Ctrl+F3 và chọn Name để sửa.
 
em có bảng tính muốn tạo danh sách động để kết hợp với hàm vlookup mong mọi người giúp đỡ, e cũng đã làm công thức ở trong rồi nhưng không hiểu sao không trả được kết quả đúng, vì vật tư của e có rất nhiều mã khác nhau, có thể lên đến hàng vài nghìn, mỗi lần thêm mã vật tư lại phải phải vào insert/Name/Define sửa lại sẽ rất mất thời gian và dễ bị nhầm lẫn.

Làm cách khác thì mọi người sẽ hướng dẫn bạn. Tôi chỉ muốn phân tích cái lỗi của bạn để sau này bạn không phạm phải nữa.

Phạm lỗi mà không rút ra được bài học thì phí quá. Học được cái gì đó trên lỗi của mình, trên lỗi của "người", đó mới là học. Đi hướng khác để giải quyết vấn đề cụ thể thì chả học thêm được gì.
------------
Bạn có name DMVT

Mã:
=OFFSET(TonDK!$B$[B][COLOR=#ff0000]1[/COLOR][/B];[B][COLOR=#ff0000]1[/COLOR][/B];0;COUNTA(TonDK!$B:$B)-1;COUNT(TonDK!$1:$1))

DMVT có bao nhiêu dòng, cột? Nhìn một công thức
Mã:
=VLOOKUP($B$12;DMVT;[B][COLOR=#0000ff]4[/COLOR][/B];0)

tôi đoán là bạn có ý lấy 4 cột, tức B, C, D, E. Dòng từ 4 tới cuối, hiện thời là 29, tức có 26 dòng.

COUNT(TonDK!$1:$1) đếm trong dòng 1, mà trong dòng này chỉ có E1 được đếm. Vậy DMVT định nghĩa như bạn chỉ có 1 cột, rõ ràng VLOOKUP sẽ sai.

Ngoài ra OFFSET sẽ "lấy" ô B2 là ô B1 dịch xuống 1 dòng (1 đỏ đỏ). Hậu quả là DMVT có 26 dòng tính từ dòng thứ 2 (B2), tức từ dòng 2 tới dòng 27, do vậy bạn mất 2 dòng dữ liệu là dòng 28, 29.

Tóm lạ phải là:

Hoặc

Mã:
=OFFSET(TonDK!$B$[B][COLOR=#ff0000]1[/COLOR][/B];[B][COLOR=#ff0000]3[/COLOR][/B];0;COUNTA(TonDK!$B:$B)-1;[B][COLOR=#ff0000]4[/COLOR][/B])

hoặc

Mã:
=OFFSET(TonDK!$B$[B][COLOR=#ff0000]4[/COLOR][/B];[B][COLOR=#ff0000]0[/COLOR][/B];0;COUNTA(TonDK!$B:$B)-1;[B][COLOR=#ff0000]4[/COLOR][/B])
----------------
Sau khi sửa lại name bạn thấy là tự dưng các công thức của bạn nó ngoan ngoãn "chạy".
 
Làm cách khác thì mọi người sẽ hướng dẫn bạn. Tôi chỉ muốn phân tích cái lỗi của bạn để sau này bạn không phạm phải nữa.

Phạm lỗi mà không rút ra được bài học thì phí quá. Học được cái gì đó trên lỗi của mình, trên lỗi của "người", đó mới là học. Đi hướng khác để giải quyết vấn đề cụ thể thì chả học thêm được gì.
------------
Bạn có name DMVT

Mã:
=OFFSET(TonDK!$B$[B][COLOR=#ff0000]1[/COLOR][/B];[B][COLOR=#ff0000]1[/COLOR][/B];0;COUNTA(TonDK!$B:$B)-1;COUNT(TonDK!$1:$1))

DMVT có bao nhiêu dòng, cột? Nhìn một công thức
Mã:
=VLOOKUP($B$12;DMVT;[B][COLOR=#0000ff]4[/COLOR][/B];0)

tôi đoán là bạn có ý lấy 4 cột, tức B, C, D, E. Dòng từ 4 tới cuối, hiện thời là 29, tức có 26 dòng.

COUNT(TonDK!$1:$1) đếm trong dòng 1, mà trong dòng này chỉ có E1 được đếm. Vậy DMVT định nghĩa như bạn chỉ có 1 cột, rõ ràng VLOOKUP sẽ sai.

Ngoài ra OFFSET sẽ "lấy" ô B2 là ô B1 dịch xuống 1 dòng (1 đỏ đỏ). Hậu quả là DMVT có 26 dòng tính từ dòng thứ 2 (B2), tức từ dòng 2 tới dòng 27, do vậy bạn mất 2 dòng dữ liệu là dòng 28, 29.

Tóm lạ phải là:

Hoặc

Mã:
=OFFSET(TonDK!$B$[B][COLOR=#ff0000]1[/COLOR][/B];[B][COLOR=#ff0000]3[/COLOR][/B];0;COUNTA(TonDK!$B:$B)-1;[B][COLOR=#ff0000]4[/COLOR][/B])

hoặc

Mã:
=OFFSET(TonDK!$B$[B][COLOR=#ff0000]4[/COLOR][/B];[B][COLOR=#ff0000]0[/COLOR][/B];0;COUNTA(TonDK!$B:$B)-1;[B][COLOR=#ff0000]4[/COLOR][/B])
----------------
Sau khi sửa lại name bạn thấy là tự dưng các công thức của bạn nó ngoan ngoãn "chạy".
rất hay và ý nghĩa, thanhs bạn rất nhiều
 
Web KT

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

Back
Top Bottom