Giải nén các số trong một phạm vi (Microsoft Excel)
Robert có một chuỗi các số trong cột A từ 1 đến 100. Anh ấy chỉ muốn trích xuất các giá trị từ 65 đến 100, bao gồm cả và đặt chúng vào cột B. Anh ấy tự hỏi liệu có cách nào để làm điều đó dễ dàng không.
Câu trả lời ngắn gọn là có một cách rất dễ thực hiện, miễn là bạn không ngại sắp xếp danh sách các số. Làm theo các bước sau:
-
Chọn một ô trong cột A. (Bạn chọn ô nào không quan trọng, miễn là nó là một trong các ô có chứa một số.)
-
Hiển thị tab Dữ liệu của dải băng.
-
Bấm vào công cụ Sắp xếp Nhỏ nhất đến Lớn nhất, trong nhóm Sắp xếp & Lọc.
Excel sắp xếp tất cả các số trong cột.
-
Chọn các số bạn muốn đưa vào cột B.
-
Nhấn Ctrl + X để cắt các ô vào Clipboard.
-
Chọn ô B1 (hoặc ô đầu tiên trong cột B nơi bạn muốn các giá trị xuất hiện).
-
Nhấn Ctrl + V để dán các ô vào cột.
Đó là nó; bây giờ bạn đã có các ô mong muốn vào cột B. Nếu bạn chỉ muốn sao chép các ô, thì ở bước 5, bạn có thể nhấn Ctrl + C để thay thế.
Nếu bạn cần giữ các giá trị trong cột A theo thứ tự ban đầu của chúng (trừ đi các giá trị bạn muốn di chuyển), bạn có thể thực hiện việc đó bằng cách sử dụng cột B làm cột “giữ chỗ”. Ở bên phải của giá trị đầu tiên trong cột A, hãy đặt vaue 1. Sau đó, bên dưới cột B đặt dấu 2, rồi đến dấu 3, v.v., cho đến khi mỗi giá trị trong cột A có một giá trị tương ứng trong cột B cho biết vị trí số. Sau đó, hãy làm theo các bước sau:
-
Chọn một ô trong cột A. (Bạn chọn ô nào không quan trọng, miễn là nó là một trong các ô có chứa một số.)
-
Hiển thị tab Dữ liệu của dải băng.
-
Bấm vào công cụ Sắp xếp Nhỏ nhất đến Lớn nhất, trong nhóm Sắp xếp & Lọc.
Excel sắp xếp tất cả các số trong cột.
-
Chọn các số trong cột A mà bạn muốn di chuyển, cùng với các số ở bên phải chúng trong cột B.
-
Nhấn Ctrl + X để cắt các ô vào Clipboard.
-
Chọn ô D1. (Điều quan trọng là chọn ô D1 vì bạn cần để trống cột C.)
-
Nhấn Ctrl + V để dán các ô vào cột D và E.
-
Chọn một ô trong cột B.
-
Hiển thị tab Dữ liệu của dải băng.
-
Bấm vào công cụ Sắp xếp Nhỏ nhất đến Lớn nhất, trong nhóm Sắp xếp & Lọc.
Excel sắp xếp tất cả các số trong cột dựa trên các giá trị trong cột B.
-
Chọn một ô trong cột E.
-
Tab Dữ liệu của ruy-băng vẫn sẽ được hiển thị.
-
Bấm vào công cụ Sắp xếp Nhỏ nhất đến Lớn nhất, trong nhóm Sắp xếp & Lọc.
Excel sắp xếp tất cả các số trong cột dựa trên các giá trị trong cột E.
-
Xóa các cột B, C và E.
Tại thời điểm này, các giá trị trong cột A và B phản ánh thứ tự ban đầu của chúng, từ khi chúng nằm trong cột A.
Một cách khác để di chuyển các ô là sử dụng khả năng lọc của Excel. Làm theo các bước sau:
-
Chọn một ô trong cột A. (Bạn chọn ô nào không quan trọng, miễn là nó là một trong các ô có chứa một số.)
-
Hiển thị tab Dữ liệu của dải băng.
-
Nhấp vào công cụ Bộ lọc. Excel thêm một mũi tên thả xuống bộ lọc ở phía bên phải của tiêu đề cột A.
-
Nhấp vào mũi tên xuống và chọn Bộ lọc Số | Giữa. Excel sẽ hiển thị hộp thoại Bộ lọc Tự động Tùy chỉnh. (Xem Hình 1.)
-
Trong hộp Greater Than hoặc Equal To, nhập 65.
-
Trong hộp Nhỏ hơn hoặc Bằng Đến, nhập 100.
-
Bấm OK. Excel giới hạn những gì được hiển thị chỉ những hàng đáp ứng tiêu chí bạn đã chỉ định trong các bước từ 4 đến 6.
-
Chọn các ô được hiển thị.
-
Nhấn Ctrl + C để sao chép các ô vào Clipboard.
-
Chọn ô B1 (hoặc ô đầu tiên trong cột B nơi bạn muốn các giá trị xuất hiện).
-
Nhấn Ctrl + V để dán các ô vào cột.
-
Chọn một trong các ô trong cột A.
-
Một lần nữa nhấp vào công cụ Bộ lọc. (Tab Dữ liệu của ruy-băng vẫn sẽ được hiển thị.) Excel loại bỏ bộ lọc bạn đã áp dụng trước đó.
Bạn cũng có thể sử dụng các công thức trong cột B để lấy ra các giá trị nằm trong phạm vi mong muốn. Một cách dễ dàng để thực hiện việc này là đặt công thức này vào ô B1:
=IF(AND(A1>=65, A1<=100),A1,"")
Sao chép công thức xuống đến mức cần thiết trong cột B và bạn sẽ nhận được bất kỳ giá trị nào trong phạm vi từ 65 đến 100, bao gồm, được “sao chép”
vào cột B. Nếu giá trị nằm ngoài phạm vi này, thì ô trong cột B để trống.
Giả sử rằng bạn không muốn bất kỳ ô trống nào trong cột B, thì bạn có thể sử dụng công thức mảng để lấy các giá trị. Nếu giá trị của bạn nằm trong khoảng A1: A500, hãy đặt giá trị sau vào ô B1:
=IFERROR(INDEX(A$1:A$500,SMALL(IF(A$1:A$500>=65,ROW($1:$500)),ROW())),"")
Nhập nó bằng Ctrl + Shift + Enter, sau đó sao chép công thức xuống tùy thích.
Tất nhiên, có những giải pháp dựa trên vĩ mô mà bạn có thể sử dụng. Những điều này rất hữu ích nếu bạn cần thực hiện tác vụ này khá nhiều với dữ liệu mà bạn lấy từ nguồn bên ngoài. Sau đây là một ví dụ đơn giản về macro mà bạn có thể sử dụng:
Sub ExtractValues1() Dim x As Integer x = 1 For Each cell In Selection If cell.Value >= 65 And cell.Value <= 100 Then Cells(x, 2) = cell.Value x = x + 1 End If Next cell End Sub
Bạn sử dụng macro bằng cách chọn các ô bạn muốn đánh giá trong cột A và sau đó chạy nó. Nó xem xét từng ô và sao chép giá trị vào cột B. Giá trị ban đầu trong cột A được giữ nguyên.
Để linh hoạt hơn, bạn có thể dựa vào yêu cầu người dùng cung cấp các giá trị thấp hơn và cao hơn, như được hiển thị trong macro này:
Sub ExtractValues2() Dim iLowVal As Integer Dim iHighVal As Integer iLowVal = InputBox("Lowest value wanted?") iHighVal = InputBox("Highest value wanted?") For Each cell In Range("A:A") If cell.Value <= iHighVal And cell.Value >= iLowVal Then ActiveCell.Value = cell.Value ActiveCell.Offset(1, 0).Activate End If Next End Sub
Trước khi bạn chạy macro, hãy chọn ô ở đầu dải nơi bạn muốn đặt các giá trị được trích xuất. Không có gì trong cột A bị ảnh hưởng; chỉ các giá trị giữa phạm vi dưới và trên được sao chép vào vị trí mới.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (13397) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.