Tách 1 dòng thành nhiều dòng với điều kiện cột G có nhiều thông tin nối bằng dấu + (1 người xem)

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

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

ptm0412

Bad Excel Member
Thành viên BQT
Administrator
Tham gia
4/11/07
Bài viết
14,552
Được thích
37,261
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Tôi nhận được tin nhắn như sau:

Kính chào thầy !
Thưa thầy, hiện em đang có một khó khăn trong công việc nhưng em xử lý thủ công vất vả quá. Vì thế em rất mong thầy có thể giúp cho em với.
Khó khăn của em là:
- em có 1 file excel trong đó cột loại đất (ONT+BHK+CLN) nằm trên một dòng. Bây giờ em muốn những dòng có loại đất (ONT+BHK+CLN) tách thành 3 dòng : ONT; BHK;CLN nằm kề nhau. Em gởi kèm theo file trong đó sheet ex là file mẫu và sheet Ket_qua là mong muốn của em. em rất mong thầy giúp cho em với. Em cảm ơn thầy nhiều !
em gởi link: http://www.mediafire.com/download/zh...g9v08e/GCN.xls
Trân trong,
em Toản

Vốn tôi không muốn trả lời qua tin nhắn vì không mang ý nghĩa chia sẻ nên tôi tạo thành topic này, nhờ mọi người giúp. Theo tôi thì xử lý bằng VBA, nếu biết mảng thì xử lý bằng mảng, còn không thì xử lý ngay trên cells. Bài này học viên các lớp căn bản do GPE mở ở HCM có thể xử lý được.
 
File xlsx mà tác giả lại đổi thành xls, chắc máy tác giả cài cả excel 2003 và 2007+.
Bài này thầy Mỹ bảo em làm = VBA thì em chịu, em chỉ làm thủ công như sau:
- Dùng Auto filter lọc ONT+BHK+CLN cột G, xác định dòng cuối của bảng
- Đánh dấu các dòng lọc được copy rồi paste 3 lần vào cuối bảng
- Bỏ auto filter
- Sort các dòng vừa thêm theo cột A
- Xóa cột G ở các dòng mới thêm vào, sửa 3 dòng đầu trong các dòng mới thêm thành ONT, BHK, CLN
- Chọn 3 ô ONT BHK CLN mới thêm ở cột G, đưa con trỏ vào góc dưới phải biến thành dấu + rồi kích kép để fill xuống.
- Sort phần dữ liệu bảng với key là cột A.
 
Lần chỉnh sửa cuối:
Upvote 0
File xlsx mà tác giả lại đổi thành xls, chắc máy tác giả cài cả excel 2003 và 2007+.
Bài này thầy Mỹ bảo em làm = VBA thì em chịu, em chỉ làm thủ công như sau:
- Dùng Auto filter lọc ONT+BHK+CLN cột G, xác định dòng cuối của bảng
- Đánh dấu các dòng lọc được copy rồi paste 3 lần vào cuối bảng
- Bỏ auto filter
- Sort các dòng vừa thêm theo cột A
- Xóa cột G ở các dòng mới thêm vào, sửa 3 dòng đầu trong các dòng mới thêm thành ONT, BHK, CLN
- Chọn 3 ô ONT BHK CLN mới thêm ở cột G, đưa con trỏ vào góc dưới phải biến thành dấu + rồi kích kép để fill xuống.
- Sort phần dữ liệu bảng với key là cột A.
VBA dùng trong trường hợp tổng quát, thí dụ không phải lúc nào cũng là 3 loại ONT, BHK, CLN, mà là loại khác lung tung, hoặc lúc thì 3, lúc thì 4, 5

- Xác định có bao nhiêu dấu + suy ra số dòng cần chèn (hàm len và replace). Nếu dùng mảng thì split
- Mỗi dòng tìm các đoạn nhỏ bằng hàm Instr, lấy ra bằng mid, nếu dùng mảng thì dùng split và lấy từng phần tử
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi nhận được tin nhắn như sau:



Vốn tôi không muốn trả lời qua tin nhắn vì không mang ý nghĩa chia sẻ nên tôi tạo thành topic này, nhờ mọi người giúp. Theo tôi thì xử lý bằng VBA, nếu biết mảng thì xử lý bằng mảng, còn không thì xử lý ngay trên cells. Bài này học viên các lớp căn bản do GPE mở ở HCM có thể xử lý được.

Tôi cũng nhận được tin nhắn tương tự và đã có trả lời:
Cái này quá dễ nếu dùng VBA, sao bạn không vào GPE để gởi bài hỏi.
Tôi làm xong rồi nhưng không muốn trả lời riêng, nếu gặp bài này trên GPE tôi sẽ gởi file đã làm xong cho bạn.
Giờ, "lão Chết tiệt" đưa bài lên GPE nên tôi cũng gởi bài đã làm cho bõ công.
 

File đính kèm

Upvote 0
Tôi cũng nhận được tin nhắn tương tự và đã có trả lời:

Giờ, "lão Chết tiệt" đưa bài lên GPE nên tôi cũng gởi bài đã làm cho bõ công.
Thì "lão chết tiệt" cũng làm xong mà chưa đưa lên, khà khà
Định để cho mấy ẻm làm trước mà Ba Tê giành công mất tiu. Code của lão chết tiệt và BaTê giống chang!

Có điều tôi thấy kết quả (theo yêu cầu đề bài) nó kỳ kỳ. Kỳ ở chỗ nếu thông tin vô thưởng vô phạt thì copy bao nhiu dòng cũng chẳng sao. Đằng này dữ liệu nhà đất, mỗi dòng nó có cột diện tích, nếu copy thành 3 dòng với 1 dòng tổng là 4, lỡ đây là danh sách nộp thuế đất theo diện tích thì con người ta phải nộp thuế đất 4 lần oan mạng.

Nên code của tui mấy dòng tách loại đất tôi bỏ 6 cột đầu không copy.
 

File đính kèm

Upvote 0
VBA dùng trong trường hợp tổng quát, thí dụ không phải lúc nào cũng là 3 loại ONT, BHK, CLN, mà là loại khác lung tung, hoặc lúc thì 3, lúc thì 4, 5

- Xác định có bao nhiêu dấu + suy ra số dòng cần chèn (hàm len và replace). Nếu dùng mảng thì split
- Mỗi dòng tìm các đoạn nhỏ bằng hàm Instr, lấy ra bằng mid, nếu dùng mảng thì dùng split và lấy từng phần tử
Bao nhiêu dấu cộng cũng có thể làm thủ công được cả.
 

File đính kèm

Upvote 0
Hình như kết quả còn thiếu các trường hợp cột I không có dấu "+".
Các dòng không có dấu cộng thì không cần thêm dòng.
File ở bài 6 chưa sort do mình muốn để lại công thức. Muốn ra kết quả cuối cùng cần copy paste value vùng màu hồng sau đó sort tăng dần theo cột A.
 
Upvote 0
Trước hết em xin cảm ơn tất cả mọi người vì sự nhiệt tình sẳn lòng chia sẽ. Đặc biệt là thầy PTM0412 ( xin lỗi vì em không biết tên) và anh Ba tê.
Hơn nữa em muốn tách như vậy với điều kiện như thế này có được không thưa thầy và các tiền bối?
Đó là em muốn có điều kiện như sau: nếu cột = ONT+BHK+CLN, mình đặt điều kiện cho nó là ONT=500 (500 ở cột diện tích), BHK= tổng diện tích -500
em xin cảm ơn trước 1
Trân trọng!
 
Upvote 0
Trước hết em xin cảm ơn tất cả mọi người vì sự nhiệt tình sẳn lòng chia sẽ. Đặc biệt là thầy PTM0412 ( xin lỗi vì em không biết tên) và anh Ba tê.
Hơn nữa em muốn tách như vậy với điều kiện như thế này có được không thưa thầy và các tiền bối?
Đó là em muốn có điều kiện như sau: nếu cột = ONT+BHK+CLN, mình đặt điều kiện cho nó là ONT=500 (500 ở cột diện tích), BHK= tổng diện tích -500
em xin cảm ơn trước 1
Trân trọng!
ONT có luôn luôn đứng đầu chuỗi không?
CLN sao lại không tính?
Nếu tổng nhỏ hơn 500 thì sao?
 
Upvote 0
ONT có luôn luôn đứng đầu chuỗi không?
CLN sao lại không tính?
Nếu tổng nhỏ hơn 500 thì sao?
Thưa thầy,
Trước hết en xin cảm ơn thầy vì sự nhiệt tình chia sẽ! Mấy hôm rồi em đi làm xa quá thầy à nên giờ em mới đọc được tin nhắn của thầy. em rất mong thầy thông cảm.
ONT luôn đứng đầu thầy à.
em chỉ muốn tính ONT=500 và BHK =tổng diện tích - 500
Thầy ơi, thầy sửa code thêm giúp em với em cảm ơn thầy nhiều!
 
Upvote 0
Web KT

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

Back
Top Bottom