Cho hỏi hàm thay thế!

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

h5nry

Thành viên chính thức
Tham gia
18/12/07
Bài viết
51
Được thích
33
Mình có 1 bảng tính, cần thay thế tất cả các số >0 , thay thế bằng 1.
Xin hỏi mình làm cách nào !
Thanks in advance.
 
Mình có 1 bảng tính, cần thay thế tất cả các số >0 , thay thế bằng 1.
Xin hỏi mình làm cách nào !
Thanks in advance.
Yêu cầu này không thể dùng Find and Replace để thực hiện rồi... Vậy cách củ chuối nhất là: For Each Clls in Range(....)
Có điều với khoảng trên 1000 dòng, 10 cột dử liệu mà For kiểu đó chắc chờ mệt nghĩ luôn!
Tôi nghĩ dùng AutoFilter từng cột, với điều kiện ">0"... sau đó chọn từng cột và cho chúng = 1 tuốt (có thể copy số 1 ở đâu đó để paste vào)
Cái này ta có thể thừa sức làm bằng tay, còn nếu muốn dùng code thì vẩn trên cơ sở đó... Ví dụ:
PHP:
Sub Find_n_Replace()
   Dim Rng As Range
   Set Rng = [A1].CurrentRegion
   Application.ScreenUpdating = False
   On Error Resume Next
   For i = 1 To Rng.Columns.Count
     ActiveSheet.ShowAllData
     Rng.AutoFilter Field:=i, Criteria1:=">0"
     Rng.Offset(1, i - 1).Resize(Rng.Rows.Count - 1, 1).SpecialCells(12).Value = 1
   Next
   ActiveSheet.ShowAllData
   Application.ScreenUpdating = True
End Sub
Xem file đính kèm
(Ở file ví dụ này dử liệu bắt đầu là cell A1, bạn hãy thay thế cho phù hợp với dử liệu thật)
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi nghĩ không nên quá phức tạp vấn đề đến vậy, mình có thể thay thế sang 1 Sheet mới cũng được chứ đâu nhất thiết phải thay thế ngay trên Sheet đó. Mà như vậy thì chỉ cần gõ 1 cái hàm IF đơn giản bên Sheet mới rồi copy ra cả Sheet là OK. Tuy nhiên cũng chỉ nên copy đúng tới những ô có dữ liệu thôi, chứ copy cả Sheet thì cũng có vấn đề đấy :D.
 
Tôi nghĩ không nên quá phức tạp vấn đề đến vậy, mình có thể thay thế sang 1 Sheet mới cũng được chứ đâu nhất thiết phải thay thế ngay trên Sheet đó. Mà như vậy thì chỉ cần gõ 1 cái hàm IF đơn giản bên Sheet mới rồi copy ra cả Sheet là OK. Tuy nhiên cũng chỉ nên copy đúng tới những ô có dữ liệu thôi, chứ copy cả Sheet thì cũng có vấn đề đấy :D.
Thì nhiều cách mà ---> Miển đạt được mục đích
Sở dỉ tôi gợi ý dùng code như trên là vì tôi đã đọc qua topic này:
http://www.giaiphapexcel.com/forum/showthread.php?t=13822
Cùng 1 tác giã... Và tôi nghĩ chúng có liên quan nhau đấy!
 
Bạn bấm tổ hộp phím Ctrl F - trong ô Find what đánh số cần thay thế, trong replace with đánh số sẽ được thay thế
 
Bạn bấm tổ hộp phím Ctrl F - trong ô Find what đánh số cần thay thế, trong replace with đánh số sẽ được thay thế
Vậy, nếu bạn có khoảng 1000 con số lớn hơn 0, muốn thay thế thành 1, thì bạn phải làm 1000 lần ?
 
Mình có 1 bảng tính, cần thay thế tất cả các số >0 , thay thế bằng 1.
Xin hỏi mình làm cách nào !
Thanks in advance.

Xin hỏi rõ thêm :

  1. Những số >0 ----> 0
  2. Những số = 0 ---->0
  3. Những số <0 ------> Giữ nguyên.
Không biết có đúng thế không ??

Phải phân chia ra hết các trường hợp thì mới làm đúng được bạn ạ.

Thân!
 
Xin hỏi rõ thêm :
  1. Những số >0 ----> 0
  2. Những số = 0 ---->0
  3. Những số <0 ------> Giữ nguyên.
Không biết có đúng thế không ??

Phải phân chia ra hết các trường hợp thì mới làm đúng được bạn ạ.

Thân!
Thì bạn ấy đã nói rõ rồi còn gì:
Mình có 1 bảng tính, cần thay thế tất cả các số >0 , thay thế bằng 1.
Xin hỏi mình làm cách nào !
Thanks in advance.
Ngầm hiểu rằng tất cả những cái khác sẽ được giữ nguyên
 
Web KT

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

Back
Top Bottom