Copy dữ liệu từ sheet này sang sheet khác, cột -> hàng (1 người xem)

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

themyth8888

Thành viên mới
Tham gia
25/6/16
Bài viết
19
Được thích
4
Chào mọi người,
Hiện mình cần làm list danh sách mới theo hàng (sheet 2) được copy từ danh sách cũ (sheet 1), nhưng vì công ty nhiều nhân viên quá với lại hay thay đổi do toàn lao động phổ thông, nên không copy thủ công mà mình muốn tự cập nhật khi có thay đổi. Mọi người chỉ giúp mình nên sử dụng hàm gì thì được?
Trong file đính kèm mình gửi là danh sách rút gọn. Mình muốn muốn copy mã code và tên nhân viên của từng nhóm từ Sheet 1 sang Sheet 2. Nhưng ở Sheet 1 thì tên được lập theo vị trí cột, còn ở sheet 2 thì lập theo vị trí hàng.
Cảm ơn mọi người nhiều lắm!
 

File đính kèm

Cảm ơn Comet297, sao mình copy lại không được vậy bạn? Mình muốn dữ liệu ở Sheet2 sẽ được sắp xếp như trong file đính kèm này nè bạn. Bạn giải thích rõ giúp mình với.
 

File đính kèm

Mình xin giải thích rõ ý mình như sau: Danh sách dữ liệu giống ví dụ ở Sheet1!, mỗi mã nhóm (MN) là bao gồm nhiều nhân viên (thay đổi liên tục). Nhóm Nhân viên 01 (ký hiệu NNV01) hiện tại tạm thời là 10 người và danh sách tên ở dạng 1 cột, nhiều hàng. Sếp mình yêu cầu mình làm ra một danh sách nhóm theo hàng như ở Sheet2, mỗi nhóm 1 hàng, và nhiều cột, mỗi tên nhân viên là một cột.
Mình sử dụng hàng Offset và hàm columns kết hợp như sau: =OFFSET(Sheet1!$E2,INT((COLUMNS(Sheet1!$E:E)-1)/1),MOD(COLUMNS(Sheet1!E:$E)-1,1)), khi kéo để copy công thức qua phải thì được, nhưng khi bắt đầu nhóm NNV02 thì phải đếm và cộng thêm số hàng như ở Sheet2.
Bạn xem trong file đính kèm và chỉnh sửa giúp mình với.
 

File đính kèm

Mình xin giải thích rõ ý mình như sau: Danh sách dữ liệu giống ví dụ ở Sheet1!, mỗi mã nhóm (MN) là bao gồm nhiều nhân viên (thay đổi liên tục). Nhóm Nhân viên 01 (ký hiệu NNV01) hiện tại tạm thời là 10 người và danh sách tên ở dạng 1 cột, nhiều hàng. Sếp mình yêu cầu mình làm ra một danh sách nhóm theo hàng như ở Sheet2, mỗi nhóm 1 hàng, và nhiều cột, mỗi tên nhân viên là một cột.
Mình sử dụng hàng Offset và hàm columns kết hợp như sau: =OFFSET(Sheet1!$E2,INT((COLUMNS(Sheet1!$E:E)-1)/1),MOD(COLUMNS(Sheet1!E:$E)-1,1)), khi kéo để copy công thức qua phải thì được, nhưng khi bắt đầu nhóm NNV02 thì phải đếm và cộng thêm số hàng như ở Sheet2.
Bạn xem trong file đính kèm và chỉnh sửa giúp mình với.
tạm thời nghĩ chưa ra cách ngắn hơn
công thức cho sheet2 C2
PHP:
=IF(B2="","",IF(OR(OFFSET(Sheet1!$A$1,MATCH($B2,Sheet1!$A$2:$A$1000,0)-1+COLUMNS($B$1:B$1),,,)=B2,OFFSET(Sheet1!$A$1,MATCH($B2,Sheet1!$A$2:$A$1000,0)-1+COLUMNS($B$1:B$1),,,)=0),OFFSET(Sheet1!$E$2,MATCH($B2,Sheet1!$A$2:$A$1000,0)+COLUMNS($B$1:B$1)-2,,,),""))
 

File đính kèm

Lần chỉnh sửa cuối:
Mình xin giải thích rõ ý mình như sau: Danh sách dữ liệu giống ví dụ ở Sheet1!, mỗi mã nhóm (MN) là bao gồm nhiều nhân viên (thay đổi liên tục). Nhóm Nhân viên 01 (ký hiệu NNV01) hiện tại tạm thời là 10 người và danh sách tên ở dạng 1 cột, nhiều hàng. Sếp mình yêu cầu mình làm ra một danh sách nhóm theo hàng như ở Sheet2, mỗi nhóm 1 hàng, và nhiều cột, mỗi tên nhân viên là một cột.
Mình sử dụng hàng Offset và hàm columns kết hợp như sau: =OFFSET(Sheet1!$E2,INT((COLUMNS(Sheet1!$E:E)-1)/1),MOD(COLUMNS(Sheet1!E:$E)-1,1)), khi kéo để copy công thức qua phải thì được, nhưng khi bắt đầu nhóm NNV02 thì phải đếm và cộng thêm số hàng như ở Sheet2.
Bạn xem trong file đính kèm và chỉnh sửa giúp mình với.
Theo chỉ dẫn của bạn thì ở [C2] phải có giá trị là 4 chứ, tương tự ở [C6], [C10], [C14], [C22] cũng phải là 4 chứ
Nếu đúng thế thì công thức cũng đơn giản thôi, chứ nhìn công thức của chú Thương muốn ...."tèo" quá
Híc
 
Cảm ơn Comet297, sao mình copy lại không được vậy bạn? Mình muốn dữ liệu ở Sheet2 sẽ được sắp xếp như trong file đính kèm này nè bạn. Bạn giải thích rõ giúp mình với.
Theo file của bạn thì có thể dùng CT đơn giản này, tại ô C2 của Sheet2:
Mã:
C2=INDIRECT("Sheet1!E"&(ROW(A1)-1)*4+1+COLUMN(A1))
rồi bạn fill cho nguyên bảng!!!
 
Theo chỉ dẫn của bạn thì ở [C2] phải có giá trị là 4 chứ, tương tự ở [C6], [C10], [C14], [C22] cũng phải là 4 chứ
Nếu đúng thế thì công thức cũng đơn giản thôi, chứ nhìn công thức của chú Thương muốn ...."tèo" quá
Híc
Nếu bộ phận nào cũng có 4 người như vậy thì quá dễ rồi nhé bác cò
File ví dụ và yêu cầu chả thấy chỗ nào giống nhau cả. Chính vì thế nên mới có cái vụ nếu dài thòng như vậy. Ủa mà chủ topic là người cần mà biến mất tiêu rồi. Còn nhóm Cạo + chúng ta tranh luận với nhau làm gì vậy anh. Kha kha
 
Nếu bộ phận nào cũng có 4 người như vậy thì quá dễ rồi nhé bác cò
File ví dụ và yêu cầu chả thấy chỗ nào giống nhau cả. Chính vì thế nên mới có cái vụ nếu dài thòng như vậy. Ủa mà chủ topic là người cần mà biến mất tiêu rồi. Còn nhóm Cạo + chúng ta tranh luận với nhau làm gì vậy anh. Kha kha
Không phải, ý anh nói là nếu [C4] là 10 thì trong danh sách thì mã NNV01 phải có 10 nhân viên mới đúng, tức là từ [E2] ==> [E11] phải là tên nhân viên của ĐỘI CHẾ TẠO CƠ KHÍ
Híc
 
Có thể là 4 hoặc có thể nhiều hơn bạn concogia ơi. File đó chỉ là ví dụ, bởi số nhân viên của từng nhóm có thể tăng hoặc giảm, thay đổi liên tục ah :(
 
:D mình ko có trốn, vẫn theo dõi đó mà. Tại sáng nay bị cúp điện không lên được thôi, oan quá.
 
Theo file của bạn thì có thể dùng CT đơn giản này, tại ô C2 của Sheet2:
Mã:
C2=INDIRECT("Sheet1!E"&(ROW(A1)-1)*4+1+COLUMN(A1))
rồi bạn fill cho nguyên bảng!!!

Cảm ơn bạn lenongree! Làm theo cách của bạn được, nhưng khi insert row bên Sheet1! sẽ bị lỗi. Bởi không phải lúc nào cũng là 4. NNV01 có thể là 04, còn NNV02 có thể là 14 ... Khổ thế đó bạn ơi hic.
 
tạm thời nghĩ chưa ra cách ngắn hơn
công thức cho sheet2 C2
PHP:
=IF(B2="","",IF(OR(OFFSET(Sheet1!$A$1,MATCH($B2,Sheet1!$A$2:$A$1000,0)-1+COLUMNS($B$1:B$1),,,)=B2,OFFSET(Sheet1!$A$1,MATCH($B2,Sheet1!$A$2:$A$1000,0)-1+COLUMNS($B$1:B$1),,,)=0),OFFSET(Sheet1!$E$2,MATCH($B2,Sheet1!$A$2:$A$1000,0)+COLUMNS($B$1:B$1)-2,,,),""))
Cảm ơn bạn Thương nhiều nhé! Mình sử dụng của bạn có thể insert rown ở Sheet 1 vô tư. Còn đang test thêm vài tình huống ... toàn diện sẽ hậu tạ nha --=0--=0--=0
 
Thế bạn có tham dự sinh nhật GPE không mà hậu tạ ?--=0
Mình rất muốn giao lưu với mọi người để học hỏi thêm, mà giờ thì mình đang ở Cà Mau :'(. Hy vọng sẽ có dịp hậu tạ bác Lê Duy Thương và bác Ba Tê. Cảm ơn bác Ba Tê nhé, chạy file của bác cũng vô tư :), bỗng dưng thèm biết VBA quá hic.
 

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

Back
Top Bottom