Hỏi cách xóa (tự động) các cell quá dài.

Liên hệ QC

tsuyoshi

Thành viên mới
Tham gia
22/12/07
Bài viết
7
Được thích
0
Xin chào các bạn.

Mình có một file dữ liệu tổng hợp cả tục ngữ và ca dao.
Các câu tục ngữ và ca dao được chia ra nằm ở mỗi cell trong cột A.

Mình thì chỉ cần có dữ liệu của riêng tục ngữ thôi. Do đó, mình đang tiến hành lọc bỏ các phần ca dao không cần thiết.

Mình có muốn là xóa tất cả các cell có độ dài nhất định, (thường các câu ca dao thì dài hơn tục ngữ), thí dụ dài hơn khoảng 15 từ. 15 từ này, nhân với trung bình cho một từ là 3 kí tự thì có thể định nghĩa độ dài của cell hơn 120 byte thì xóa bỏ cell đó. (cách tính: (15x3+14 khoảng trắng)x 2 byte)

Không biết tính như vầy có đúng không? Mình không rành về kiến thức tin học lắm, nếu có sai xin các bạn chỉ dẫn!

Xin có ai biết cách viết câu lệnh hay marco thì chỉ mình làm với.

Thành thật cảm ơn.
(Mình có up lên file mẫu. Đây chỉ là file mẫu thôi. File toàn bộ nặng lắm. Rất nhiều dữ liệu do đó xóa bằng tay thì rất mất thời gian. Nên mới lên đây hỏi nhờ các bạn giúp đỡ.)
 

File đính kèm

Bạn có thể dùng hàm LEN để đo độ dài của câu . Sau đó dùng định dạng có điều kiện để hiện rõ các câu có độ̣ dài lớn hơn mức bạn muốn .
Xong việc , bạn nhấn Ctrl dùng chuột chọn các cell có củng định dạng . Nhấn Delete .
OK
 
Bạn hãy dùng chức năng Avanced Fillter với chiều dài của câu Ca dao / tục ngữ đó cụ thể như sau

1) Tính chiều dài của các câu này
+ lập công thức tại ô này (B2):
=LEN(A2)
+ kéo copy công thức xuống các ô còn lại: B2…B...


2) Sử dụng Advanced Filter để lọc được kết quả:
+ Để con trỏ ô vào vùng này A1:B... (bất cứ ô nào)
+ Vào menu: Data\ Filter \ Avanced filter …
Xuất hiện hộp thoại Avanced filter
+ Chọn Copy to an other location
+ listrange: $A$1:$B$26 (vùng cần lọc)
+Criteria: $D$1:$D$2 (Vùng đ/k)
+ Copy to: $G$4 chẳng hạn (ô đích copy tới)

Xem file gửi kèm các có file hướng dẫn
 

File đính kèm

Lần chỉnh sửa cuối:
tsuyoshi đã viết:
Xin chào các bạn.

Mình có một file dữ liệu tổng hợp cả tục ngữ và ca dao.
Các câu tục ngữ và ca dao được chia ra nằm ở mỗi cell trong cột A.
Mình thì chỉ cần có dữ liệu của riêng tục ngữ thôi. Do đó, mình đang tiến hành lọc bỏ các phần ca dao không cần thiết.
Mình có muốn là xóa tất cả các cell có độ dài nhất định,
Xin có ai biết cách viết câu lệnh hay marco thì chỉ mình làm với.
(Mình có up lên file mẫu. Nhờ các bạn giúp đỡ.)
E rằng tác gia topic cũng ngại AdvancedFilter, nên mình viết sẵn macro xóa dòng có độ dài vượt quy định tặng bạn;

Cách thức tiến hành như sau:
Để khỏi mất dữ liệu, Bạn chép CSDL (có cả hàm LEN() như Tiger^2 đã đưa file lên) từ sheet1 sang sheet2;
Tại sheet2 bạn cho chạy macro bằng tổ hợp 2 phím {Alt} +{F8}; Khi cửa sổ (CS) macro hiện ra chì có tên 1 macro bạn bấm nút Run trên CS đó.
Khi macro hỏi bạn "độ dài tối đa bạn muốn để lại", lúc đó bạn nhập vô 1 số cần thiết; như 85
Macro sau 1 khoảng thời gian cần thiết cho nó, nó sẽ xóa những câu dài hơn iêu cầu của bạn;
Bạn có thể thử nhiều lần xem ưng ý chưa, bằng cách mỗi lần chịu khó chép CSDL từ sheet1 sang sheet2 & cho chạy macro.
Nếu còn chưa trơn tru chúng ta giải quyết tiếp!

Chúc bạn mùa xuân tràn đầy niềm vui!
PHP:
Option Explicit

Sub DeleteFor()
 Dim lRow As Long, jZ As Long
 Dim dRng As Range:         Dim lMax As Integer
 
 lRow = Range("B65432").End(xlUp).Row
 lMax = InputBox("HAY CHO BIET DO DAI TOI DA CAN GIU LAI")
 For jZ = lRow To 2 Step -1
    With Cells(jZ, 2)
        If .Value > lMax Then
            If dRng Is Nothing Then
                Set dRng = Cells(jZ, 2).Rows
            Else
                Set dRng = Union(dRng, Cells(jZ, 2).Rows)
        
        End If:         End If
    End With
 Next jZ
 dRng.Delete
 Set dRng = Nothing
End Sub
 

File đính kèm

Web KT

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

Back
Top Bottom