Xin giúp đỡ cách gộp nhiều hàng ngang thành một hàng dọc sang sheet khác? (3 người xem)

  • Thread starter Thread starter dvadva
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Lại "làm mai"!? :p


Lẽ ra bạn nên làm theo yêu cầu của anh @HieuCDbài #9, thì bạn đã được hỗ trợ rồi. Vã lại, bài này dùng VBA là tối ưu nhất, nhưng do bạn khoái xài "hàng hiệu excell 365 online" nên nó mới không tận dụng được VBA.

Nay, tôi hỗ trợ bạn trên cơ sở giả định file của bạn có cùng kết cấu cơ sở dữ liệu như file kèm.
Nếu khác đi thì bạn tự lo nhen!

Thân

Em gửi file nhiều bảng làm phiền bác lần cuối về trường hợp này bác ơi.
File mẫu công thức em dò để chỉnh theo nhưng nhiều hàm lạ với em quá nên bị lỗi.
Em gửi file gốc lên nhờ bác làm giúp em chuyển hàng ở sheet ATG sang cột ở sheet ATG Côt. Các sheet ADF ADU...còn lại cấu trúc và chuyển y hệt sheet ATG em sẽ copy nguyên công thức áp sang được.
Ví trí các dòng sheet ATG chuyển sang vị trí cột ở sheet ATG Cột nguyên vậy không phải chỉnh thêm gì nữa bác ạ.
 

File đính kèm

Em gửi file nhiều bảng làm phiền bác lần cuối về trường hợp này bác ơi.
File mẫu công thức em dò để chỉnh theo nhưng nhiều hàm lạ với em quá nên bị lỗi.
Em gửi file gốc lên nhờ bác làm giúp em chuyển hàng ở sheet ATG sang cột ở sheet ATG Côt. Các sheet ADF ADU...còn lại cấu trúc và chuyển y hệt sheet ATG em sẽ copy nguyên công thức áp sang được.
Ví trí các dòng sheet ATG chuyển sang vị trí cột ở sheet ATG Cột nguyên vậy không phải chỉnh thêm gì nữa bác ạ.
Cấu trúc file của các bài trên không giống nhau, nên xử lý công thức cũng khác nhau.
Nếu các file dữ liệu đồng nhất dạng như file bạn vừa gửi trên thì phải tạo thêm các dữ liệu phụ như sau: (chỉ cần tạo trên 1 sheet mẫu: Vd sheet "ATG Côt", sau đó copy cả Vùng từ hàng 3 đến hàng 400, rồi dán công thức cho các Sheet: "xxxx Côt" ở phía sau)
  1. Ô lấy tên Sheet:
    Mã:
    A1=SUBSTITUTE(SUBSTITUTE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,100)," Côt","")," Cột","")
  2. Vị trí cột của các bảng chi tiết có trong từng sheet dữ liệu:
    Mã:
    C4=IFERROR(MATCH(C$5,INDIRECT($A$1&"!2:2"),)-3,"")
    Enter, fill qua phải.
  3. Tên của các bảng chi tiết hiện hữu trong Sheet dữ liệu:
    Mã:
    C5=IFERROR(INDEX(INDIRECT($A$1&"!2:2"),MATCH(,INDEX(COUNTIF($B$5:B$5,INDIRECT($A$1&"!2:2"))+(INDIRECT($A$1&"!2:2")=""),),)),"")
    Enter, fill qua phải.
  4. Nếu bạn đảm bảo ngày là giống nhau giữa các bảng chi tiết hiện hữu trong Sheet dữ liệu:
    Mã:
    A7=IFERROR(OFFSET(INDIRECT(ADDRESS(7,$C$4,,,$A$1)),INT((ROW(A1)-1)/7)*2,MOD(ROW(A1)-1,7)),"")
    Enter, fill xuống.
  5. Dòng chi tiết mã hàng:
    Mã:
    C7=IFERROR(T(OFFSET(INDIRECT(ADDRESS(7,C$4,,,$A$1)),INT((ROW(A1)-1)/7)*2+1,MOD(ROW(A1)-1,7))),"")
    Enter, fill qua phải rồi copy cả hàng xuống.
Thân
 

File đính kèm

Cấu trúc file của các bài trên không giống nhau, nên xử lý công thức cũng khác nhau.
Nếu các file dữ liệu đồng nhất dạng như file bạn vừa gửi trên thì phải tạo thêm các dữ liệu phụ như sau: (chỉ cần tạo trên 1 sheet mẫu: Vd sheet "ATG Côt", sau đó copy cả Vùng từ hàng 3 đến hàng 400, rồi dán công thức cho các Sheet: "xxxx Côt" ở phía sau)
  1. Ô lấy tên Sheet:
    Mã:
    A1=SUBSTITUTE(SUBSTITUTE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,100)," Côt","")," Cột","")
  2. Vị trí cột của các bảng chi tiết có trong từng sheet dữ liệu:
    Mã:
    C4=IFERROR(MATCH(C$5,INDIRECT($A$1&"!2:2"),)-3,"")
    Enter, fill qua phải.
  3. Tên của các bảng chi tiết hiện hữu trong Sheet dữ liệu:
    Mã:
    C5=IFERROR(INDEX(INDIRECT($A$1&"!2:2"),MATCH(,INDEX(COUNTIF($B$5:B$5,INDIRECT($A$1&"!2:2"))+(INDIRECT($A$1&"!2:2")=""),),)),"")
    Enter, fill qua phải.
  4. Nếu bạn đảm bảo ngày là giống nhau giữa các bảng chi tiết hiện hữu trong Sheet dữ liệu:
    Mã:
    A7=IFERROR(OFFSET(INDIRECT(ADDRESS(7,$C$4,,,$A$1)),INT((ROW(A1)-1)/7)*2,MOD(ROW(A1)-1,7)),"")
    Enter, fill xuống.
  5. Dòng chi tiết mã hàng:
    Mã:
    C7=IFERROR(T(OFFSET(INDIRECT(ADDRESS(7,C$4,,,$A$1)),INT((ROW(A1)-1)/7)*2+1,MOD(ROW(A1)-1,7))),"")
    Enter, fill qua phải rồi copy cả hàng xuống.
Thân

Lúc đầu em nghĩ đơn giản từ file mẫu xem kết cấu công thức rồi áp cho từng bảng, sau mới thấy sai thật.
File gốc em mới gửi ở trên nguyên vậy luôn bác ạ, đồng nhất cấu trúc các sheet. Các sheet chuyển như này quá ưng ý rồi bác ạ, bác giải thích các dòng công thức khá dễ hiểu.
Cám ơn bác và các anh chị em. Em chúc bác sức khỏe!
 
Cấu trúc file của các bài trên không giống nhau, nên xử lý công thức cũng khác nhau.
Nếu các file dữ liệu đồng nhất dạng như file bạn vừa gửi trên thì phải tạo thêm các dữ liệu phụ như sau: (chỉ cần tạo trên 1 sheet mẫu: Vd sheet "ATG Côt", sau đó copy cả Vùng từ hàng 3 đến hàng 400, rồi dán công thức cho các Sheet: "xxxx Côt" ở phía sau)
  1. Ô lấy tên Sheet:
    Mã:
    A1=SUBSTITUTE(SUBSTITUTE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,100)," Côt","")," Cột","")
  2. Vị trí cột của các bảng chi tiết có trong từng sheet dữ liệu:
    Mã:
    C4=IFERROR(MATCH(C$5,INDIRECT($A$1&"!2:2"),)-3,"")
    Enter, fill qua phải.
  3. Tên của các bảng chi tiết hiện hữu trong Sheet dữ liệu:
    Mã:
    C5=IFERROR(INDEX(INDIRECT($A$1&"!2:2"),MATCH(,INDEX(COUNTIF($B$5:B$5,INDIRECT($A$1&"!2:2"))+(INDIRECT($A$1&"!2:2")=""),),)),"")
    Enter, fill qua phải.
  4. Nếu bạn đảm bảo ngày là giống nhau giữa các bảng chi tiết hiện hữu trong Sheet dữ liệu:
    Mã:
    A7=IFERROR(OFFSET(INDIRECT(ADDRESS(7,$C$4,,,$A$1)),INT((ROW(A1)-1)/7)*2,MOD(ROW(A1)-1,7)),"")
    Enter, fill xuống.
  5. Dòng chi tiết mã hàng:
    Mã:
    C7=IFERROR(T(OFFSET(INDIRECT(ADDRESS(7,C$4,,,$A$1)),INT((ROW(A1)-1)/7)*2+1,MOD(ROW(A1)-1,7))),"")
    Enter, fill qua phải rồi copy cả hàng xuống.
Thân

Nhờ bác Hiệp giúp em công thức tô màu tự động trong Conditional Formating như yêu cầu ở dưới bác ơi
Em muốn tự động tô màu Đỏ từ cột M và các cột bên phải cột M (các cột này được đánh số thứ tự từ 1 đến 120) khi tương ứng với từng dòng thì các giá trị ở các cột này bằng giá trị ở cột K.
Em cám ơn!
 

File đính kèm

Nhờ bác Hiệp giúp em công thức tô màu tự động trong Conditional Formating như yêu cầu ở dưới bác ơi
Em muốn tự động tô màu Đỏ từ cột M và các cột bên phải cột M (các cột này được đánh số thứ tự từ 1 đến 120) khi tương ứng với từng dòng thì các giá trị ở các cột này bằng giá trị ở cột K.
Em cám ơn!
Khuyên bạn với nhiều bảng biểu, lại dùng Conditional Formatting để tô màu cho Vùng rộng lớn (hơn 300 dòng x 120 cột = 36.000 ô x Số sheets => Con số lớn) sẽ làm trì trệ máy mỗi khi bạn mở lên sử dụng.

Cách tốt nhất bạn nhờ anh em viết các đoạn lập trình để: trích lục bảng và tô màu thì sẽ làm cho file mở lên sử dụng mượt mà hơn.

Riêng file đính kèm tôi cũng làm thử cho bạn theo yêu cầu mới nhưng, theo tôi, chỉ để tham khảo.

Thân
 

File đính kèm

Khuyên bạn với nhiều bảng biểu, lại dùng Conditional Formatting để tô màu cho Vùng rộng lớn (hơn 300 dòng x 120 cột = 36.000 ô x Số sheets => Con số lớn) sẽ làm trì trệ máy mỗi khi bạn mở lên sử dụng.

Cách tốt nhất bạn nhờ anh em viết các đoạn lập trình để: trích lục bảng và tô màu thì sẽ làm cho file mở lên sử dụng mượt mà hơn.

Riêng file đính kèm tôi cũng làm thử cho bạn theo yêu cầu mới nhưng, theo tôi, chỉ để tham khảo.

Thân

Em cám ơn bác!
Em thấy hạn chế của công thức làm hệ thống máy xử lý chậm khi số lượng ô lớn như này, em phụ thuộc nhiều vào làm trên excel online mà VBA không thực hiện được cho excel online nên không biết làm thế nào để tận dụng VBA, bữa giờ toàn phải phụ thuộc vào công thức bác ạ.
 
Web KT

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

Back
Top Bottom