Đưa 2 range ở 2 sheet vào chung 1 mảng để xử lý

Liên hệ QC

moihocvba

Thành viên thường trực
Tham gia
16/8/20
Bài viết
211
Được thích
50
Chào anh chị! Em có 2 sheet Nhập và Xuất ở 2 sheet khác nhau, mục đích em cần tạo ra bảng nhập xuất tồn nên em muốn đưa 2 range này vào cùng 1 mảng để chạy vòng lặp trong mảng rút ra kết quả như mong muốn. Anh chị chỉ em cách để đưa 2 range ở 2 sheet khác nhau vào cùng 1 mảng với.

sheet nhập:
1619522551834.png

Sheet xuất:
1619522576566.png

và sheet em mong muốn kết quả:
1619522694820.png

Cám ơn anh chị đã giải đáp!
 

File đính kèm

  • 1619522547391.png
    1619522547391.png
    57.9 KB · Đọc: 7
  • Bang nhap xuat ton.xlsx
    14.1 KB · Đọc: 12
Tôi nghĩ như thế này nhanh hơn:
- Khai báo 2 mảng 1 và 2
- lấy dòng cuối của 2 sheet,
- Mảng 1 gán dữ liệu sheet 1
- Mảng 2 gán dữ liệu sheet 2 nhưng có thêm số dòng trống = số dòng của mảng 1
- Lặp mảng 1 vào mảng 2 ở các dòng trống ấy
Dòng tô đỏ làm cách nào? Gán từng ô vào?
Dòng màu xanh bắt buộc lặp rồi không nói.
 
Upvote 0
Tôi thấy tác giả đã biết ở đâu đó code của 1 bài tương tự, kết quả tương tự hình bài #1, nhưng bài đó chỉ có 1 bảng nhập xuất. Tức 1 cái là của bản thân lại là 2 bảng, chỉ cần gộp 2 bảng làm 1 (sort siếc cái nữa), thì áp dụng code bài đã biết là xong. Tác giả cũng đã xác nhận vụ này ở bài #8
Tôi nghĩ là thớt chưa thấy quan tài chưa đổ lệ.
Cẩn phải biết cái code "bài đã biết" nó làm cách nào để phân biệt nhập và xuất?

Dòng tô đỏ làm cách nào? Gán từng ô vào?
...
mảng 2 = sheets("xuất")....<dòng cuối sheet xuất + UBound(mảng 1)>.Value
 
Upvote 0
mảng 2 = sheets("xuất")....<dòng cuối sheet xuất + UBound(mảng 1)>.Value
Cũng là 1 cách nhưng tôi không thích:
- dưới dòng cuối dữ liệu xuất của sheet xuất có dữ liệu khác, hoặc kiểu "ngày tháng năm", "chữ ký ông A", ... Ghi đè mảng 1 vào cũng được thôi, nhưng thấy "ghét"
- ... kiểu dạy người yếu đánh vật
 
Upvote 0
Dòng tô đỏ làm cách nào? Gán từng ô vào?
Dòng màu xanh bắt buộc lặp rồi không nói.
Thay vì arr2=range("A1:E10") thì arr2=range("A1:E25"), trong đó 15 dòng chênh lệch kia là ubound(arr1)

P/S: trả lời xong mới thấy bài #22
 
Lần chỉnh sửa cuối:
Upvote 0
@Tác giả bài đăng: Có khi nào bạn nghĩ tới việc gộp từ đầu dữ liệu nhập & xuất vô 1 bảng luôn không; Khi đó chỉ cần thêm 1 cột về loại xuất hay nhập(?)
 
Upvote 0
Chủ topic nên nghĩ đến hướng, xử lý mảng 3 la mảng gộp có nhiều cách gộp
Hoặc để nguyên 2 mảng mà xử lý như 1 mảng, nhờ xử lý hợp lý các chỉ số chạy và độ dài của các mảng
 
Upvote 0
Thay vì arr2=range("A1:E10") thì arr2=range("A1:E25"), trong đó 15 dòng chênh lệch kia là ubound(arr1)

P/S: trả lời xong mới thấy bài #22
Người làm quen thì thấy là dễ, người mới học sẽ thấy khó hoặc dễ bị sai:
- thí dụ lấy lên mảng rồi tính uBound thì dễ tính đúng, tính trên sheet thì 10 người hết 6, 7 tính sai (lấy dòng cuối - dòng đầu và hụt mất 1 dòng) (*)
- đặt thêm biến thế nào để ra for i = 16 to 27, mà k từ 1 đến 15 ubound(arr1)
- ...
____________
(*) vụ thiếu 1 dòng tôi thấy hoài luôn, bắt đếm bằng tay từ 1 đến 10 luôn mà vẫn ra 9
 
Upvote 0
Nếu để nguyên bảng nhập xuất: Dùng power query append:

View attachment 257772

Nếu thêm sẵn cột loại nhập xuất ở 2 bảng, khuyến mãi hàm Let của Excel 365

H2 =LET(data1,DataN2,data2,DataX2,stt,SEQUENCE(ROWS(data1)+ROWS(data2)),IF(stt<=ROWS(data1),INDEX(data1,stt,SEQUENCE(1,5)),INDEX(data2,stt-ROWS(data1),SEQUENCE(1,5))))

View attachment 257773
bác làm giúp cái tổng hợp xuất nhập tất cả sản phẩm vào 1 bảng đc ko bác
 
Upvote 0
Web KT

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

Back
Top Bottom