Hỏi về cách copy hàng loạt dòng trắng từ dòng liền kề phía trên

Liên hệ QC

spirit1989

Thành viên mới
Tham gia
16/12/07
Bài viết
26
Được thích
2
Hi các bác, chuyện là mình có file excel như file đính kèm.
+ Dữ liệu gốc: gồm 3 cột họ tên, địa chỉ và số điện thoại (1 khách hàng có nhiều số điện thoại, cách nhau dấu phẩy) (HÌNH 1).
+ Hiện tại mình đã tách được các số điện thoại cách nhau dấu phẩy này ra thành nhiều dòng khác nhau. Tuy nhiên hiện tại mình đang vướng ở chỗ các ô màu vàng đang trống (HÌNH 2).
+ MÌnh muốn copy dữ liệu các ô tô vàng bằng dữ liệu của dòng ngay trên nó (HÌNH 3).
Mình dùng Ctrl + D từng dòng trống thì ra được kết quả như mong muốn nhưng tốn thời gian quá, dữ liệu nhiều thì làm k ổn, các bác có cách nào làm nhanh hơn k chỉ mình với.
 

File đính kèm

  • demo.xlsx
    9.1 KB · Đọc: 18
  • hinh 1.PNG
    hinh 1.PNG
    6.5 KB · Đọc: 40
  • hinh 2.PNG
    hinh 2.PNG
    8.6 KB · Đọc: 40
  • hinh 3.PNG
    hinh 3.PNG
    17.3 KB · Đọc: 41
Hi các bác, chuyện là mình có file excel như file đính kèm.
+ Dữ liệu gốc: gồm 3 cột họ tên, địa chỉ và số điện thoại (1 khách hàng có nhiều số điện thoại, cách nhau dấu phẩy) (HÌNH 1).
+ Hiện tại mình đã tách được các số điện thoại cách nhau dấu phẩy này ra thành nhiều dòng khác nhau. Tuy nhiên hiện tại mình đang vướng ở chỗ các ô màu vàng đang trống (HÌNH 2).
+ MÌnh muốn copy dữ liệu các ô tô vàng bằng dữ liệu của dòng ngay trên nó (HÌNH 3).
Mình dùng Ctrl + D từng dòng trống thì ra được kết quả như mong muốn nhưng tốn thời gian quá, dữ liệu nhiều thì làm k ổn, các bác có cách nào làm nhanh hơn k chỉ mình với.
Dùng VBA được không bạn?
 
Hi các bác, chuyện là mình có file excel như file đính kèm.
+ Dữ liệu gốc: gồm 3 cột họ tên, địa chỉ và số điện thoại (1 khách hàng có nhiều số điện thoại, cách nhau dấu phẩy) (HÌNH 1).
+ Hiện tại mình đã tách được các số điện thoại cách nhau dấu phẩy này ra thành nhiều dòng khác nhau. Tuy nhiên hiện tại mình đang vướng ở chỗ các ô màu vàng đang trống (HÌNH 2).
+ MÌnh muốn copy dữ liệu các ô tô vàng bằng dữ liệu của dòng ngay trên nó (HÌNH 3).
Mình dùng Ctrl + D từng dòng trống thì ra được kết quả như mong muốn nhưng tốn thời gian quá, dữ liệu nhiều thì làm k ổn, các bác có cách nào làm nhanh hơn k chỉ mình với.
Chỉ làm đơn giản như thế này thôi.
1/ Bước 1: Chọn F3: H12 xong nhấn Ctrl + G hộp thoại Go to hiện ra thì nhấn nút Special, hộp thoại Go to Special hiện ra, chọn Blanks rồi nhấn nút OK (nó sẽ chọn tất cả các Cell trống).
2/ Bước 2: Vào khung Formula Bar gõ dấu = (dấu bằng), rồi Click vào F3 xong nhấn Ctrl + Enter (nó sẽ gán tất cả dữ liệu trên nó vào Cell trống).
Nếu muốn bỏ hàm thì copy và Paste Value là xong
 
Hi các bác, chuyện là mình có file excel như file đính kèm.
+ Dữ liệu gốc: gồm 3 cột họ tên, địa chỉ và số điện thoại (1 khách hàng có nhiều số điện thoại, cách nhau dấu phẩy) (HÌNH 1).
+ Hiện tại mình đã tách được các số điện thoại cách nhau dấu phẩy này ra thành nhiều dòng khác nhau. Tuy nhiên hiện tại mình đang vướng ở chỗ các ô màu vàng đang trống (HÌNH 2).
+ MÌnh muốn copy dữ liệu các ô tô vàng bằng dữ liệu của dòng ngay trên nó (HÌNH 3).
Mình dùng Ctrl + D từng dòng trống thì ra được kết quả như mong muốn nhưng tốn thời gian quá, dữ liệu nhiều thì làm k ổn, các bác có cách nào làm nhanh hơn k chỉ mình với.
Tặng bạn đoạn code này để xử lý cho nhanh
Mã:
Sub Tach()
Dim sArr(), dArr(), i As Long, k As Long, n As Long
sArr = Range("A3", Range("A65536").End(3)).Resize(, 3).Value
ReDim dArr(1 To UBound(sArr) * 10, 1 To UBound(sArr, 2))
For i = 1 To UBound(sArr)
   For n = 0 To UBound(Split(sArr(i, 3), ","))
      k = k + 1
      dArr(k, 1) = sArr(i, 1)
      dArr(k, 2) = sArr(i, 2)
      dArr(k, 3) = Split(sArr(i, 3), ",")(n)
   Next
Next
Range("A3").Resize(k, UBound(dArr, 2)) = dArr
End Sub
 
Chỉ làm đơn giản như thế này thôi.
1/ Bước 1: Chọn F3: H12 xong nhấn Ctrl + G hộp thoại Go to hiện ra thì nhấn nút Special, hộp thoại Go to Special hiện ra, chọn Blanks rồi nhấn nút OK (nó sẽ chọn tất cả các Cell trống).
2/ Bước 2: Vào khung Formula Bar gõ dấu = (dấu bằng), rồi Click vào F3 xong nhấn Ctrl + Enter (nó sẽ gán tất cả dữ liệu trên nó vào Cell trống).
Nếu muốn bỏ hàm thì copy và Paste Value là xong
Hổng đơn giản bằng copy code rồi chạy.
Nhất là khi kết quả không vừa ý thì còn vòi chỉnh code. Làm thủ công như bạn ra không đúng mất công bị mắng "không theo đúng chỉ dẫn". :p:p:p
 
Hổng đơn giản bằng copy code rồi chạy.
Nhất là khi kết quả không vừa ý thì còn vòi chỉnh code. Làm thủ công như bạn ra không đúng mất công bị mắng "không theo đúng chỉ dẫn". :p:p:p
Tôi nói đơn giản vì cách trên áp dụng cho người mới học Excel vẫn thực hiện được bình thường. Còn sử dụng code thì chỉ áp dụng cho người học chuyên sâu rất rành về Excel
 
Tôi nói đơn giản vì cách trên áp dụng cho người mới học Excel vẫn thực hiện được bình thường. Còn sử dụng code thì chỉ áp dụng cho người học chuyên sâu rất rành về Excel
Ở nơi khác thì tôi không cãi với bạn.
Nhưng ở GPE này, tôi e rằng bạn hoàn toàn sai về "thực hiện được bình thường", và "chỉ áp dụng cho người học chuyên sâu".

1. Ở đây không có mấy người thuộc dạng "bình thường". Nếu vấn đề của họ quá thông dụng thì họ sẽ cố biến nó thành đặc thù.

2. Vào GPE rồi thì không cần "chuyên sâu". Cơm dâng lên rồi muốn bón tận mồm cũng có người sẵn sàng bón.
 
Ở nơi khác thì tôi không cãi với bạn.
Nhưng ở GPE này, tôi e rằng bạn hoàn toàn sai về "thực hiện được bình thường", và "chỉ áp dụng cho người học chuyên sâu".

1. Ở đây không có mấy người thuộc dạng "bình thường". Nếu vấn đề của họ quá thông dụng thì họ sẽ cố biến nó thành đặc thù.

2. Vào GPE rồi thì không cần "chuyên sâu". Cơm dâng lên rồi muốn bón tận mồm cũng có người sẵn sàng bón.
1/ Chỉ khi nào tôi thấy thích thì giúp, không thích thì nghĩ chơi, chứ không thuộc dạng này: "Cơm dâng lên rồi muốn bón tận mồm cũng có người sẵn sàng bón".
2/ Hơn một năm nay, từ khi tôi góp ý cách tính điểm thành tích, điểm tương tác thì tôi không viết bài nữa thì bạn cũng biết rồi tôi không cần điểm.
 
1/ Chỉ khi nào tôi thấy thích thì giúp, không thích thì nghĩ chơi, chứ không thuộc dạng này: "Cơm dâng lên rồi muốn bón tận mồm cũng có người sẵn sàng bón".
2/ Hơn một năm nay, từ khi tôi góp ý cách tính điểm thành tích, điểm tương tác thì tôi không viết bài nữa thì bạn cũng biết rồi tôi không cần điểm.
Buồn quá hỏng có chuyện gì làm (*1), đùa với các bạn cũ chơi cho vui vậy thôi :p
Điểm điếc gì ở cái diễn đàn này có đổi được cơm đâu, đổi điện cho cais láp tốp chạy đỡ còn không được.

(*1) tôi đâu phải là thánh. Chính bản thân mình cũng "đói bài" bỏ bố. Nhưng tôi không thích thái độ người hỏi thì tôi không giúp.
 
Chỉ làm đơn giản như thế này thôi.
1/ Bước 1: Chọn F3: H12 xong nhấn Ctrl + G hộp thoại Go to hiện ra thì nhấn nút Special, hộp thoại Go to Special hiện ra, chọn Blanks rồi nhấn nút OK (nó sẽ chọn tất cả các Cell trống).
2/ Bước 2: Vào khung Formula Bar gõ dấu = (dấu bằng), rồi Click vào F3 xong nhấn Ctrl + Enter (nó sẽ gán tất cả dữ liệu trên nó vào Cell trống).
Nếu muốn bỏ hàm thì copy và Paste Value là xong
Cảm ơn bạn nhiều, mình đã làm được theo cách này, đơn giản
Bài đã được tự động gộp:

Tặng bạn đoạn code này để xử lý cho nhanh
Mã:
Sub Tach()
Dim sArr(), dArr(), i As Long, k As Long, n As Long
sArr = Range("A3", Range("A65536").End(3)).Resize(, 3).Value
ReDim dArr(1 To UBound(sArr) * 10, 1 To UBound(sArr, 2))
For i = 1 To UBound(sArr)
   For n = 0 To UBound(Split(sArr(i, 3), ","))
      k = k + 1
      dArr(k, 1) = sArr(i, 1)
      dArr(k, 2) = sArr(i, 2)
      dArr(k, 3) = Split(sArr(i, 3), ",")(n)
   Next
Next
Range("A3").Resize(k, UBound(dArr, 2)) = dArr
End Sub
Cảm ơn bác rất nhiều, mình sẽ thử cách dùng VBA này, do sợ bạn viết code tốn thời gian nên hỏi cách làm thao tác đơn giản trước
Bài đã được tự động gộp:

Hổng đơn giản bằng copy code rồi chạy.
Nhất là khi kết quả không vừa ý thì còn vòi chỉnh code. Làm thủ công như bạn ra không đúng mất công bị mắng "không theo đúng chỉ dẫn". :p:p:p
Mình chỉ mô tả ra chi tiết cho rõ ràng để cho các bạn hiểu ý mình muốn gì, và k có đòi hỏi phải code hay nói gì cả
 
Lần chỉnh sửa cuối:
Ở nơi khác thì tôi không cãi với bạn.
Nhưng ở GPE này, tôi e rằng bạn hoàn toàn sai về "thực hiện được bình thường", và "chỉ áp dụng cho người học chuyên sâu".

1. Ở đây không có mấy người thuộc dạng "bình thường". Nếu vấn đề của họ quá thông dụng thì họ sẽ cố biến nó thành đặc thù.

2. Vào GPE rồi thì không cần "chuyên sâu". Cơm dâng lên rồi muốn bón tận mồm cũng có người sẵn sàng bón.
Mình có nhu cầu rất đơn giản và bình thường, chỉ phục vụ nhu cầu văn phòng nên mới post bài vào trong mục "Hàm và công thức excel", chứ mà nếu phức tạp, chuyên sâu thì mình đã post vào mục VBA rồi bạn
 
Mình có nhu cầu rất đơn giản và bình thường, chỉ phục vụ nhu cầu văn phòng nên mới post bài vào trong mục "Hàm và công thức excel", chứ mà nếu phức tạp, chuyên sâu thì mình đã post vào mục VBA rồi bạn
Người đơn giản và bình thường tự động biết cách đơn giản hóa và bình thường hóa vấn đề của mình. Đâu có mọt bảng tính tùm lum tà la như vậy.

...
Mình dùng Ctrl + D từng dòng trống thì ra được kết quả như mong muốn nhưng tốn thời gian quá, dữ liệu nhiều thì làm k ổn, các bác có cách nào làm nhanh hơn k chỉ mình với.
Chuyện làm đơn giản được nhưng rõ ràng là đòi hỏi cho xịn hơn.
 
Người đơn giản và bình thường tự động biết cách đơn giản hóa và bình thường hóa vấn đề của mình. Đâu có mọt bảng tính tùm lum tà la như vậy.


Chuyện làm đơn giản được nhưng rõ ràng là đòi hỏi cho xịn hơn.
Chắc bạn quá giỏi, quá cao siêu nên nghĩ ai cũng siêu rồi mới đi hỏi, với lại bạn cao quá nên không phân biệt được giữa đơn giản và thủ công (bấm Ctrl+D để là từng dòng gọi là thủ công). Người không biết mới nghĩ đâu là tới đó, làm tùm lum, không biết hướng nên đi hỏi là bình thường. Nếu bạn có lòng muốn giúp thì cảm ơn, còn không thì cũng không cần đi mỉa mai người khác như thế
 
Web KT
Back
Top Bottom