Trong trường hợp bạn đang thắc mắc làm thế nào để ai đó có thể tìm thấy mọi mục thứ n trong một cột. Trong bài này, chúng ta sẽ học cách trả về mọi mục thứ n từ một danh sách. Chúng tôi sẽ sử dụng mã VBA để tìm kết quả.

Câu hỏi: Tôi muốn một mã macro để trích xuất mọi giá trị thứ n từ một cột. Tôi đang cố gắng kéo các giá trị từ một trang / cột sang trang / cột khác. Tôi đã thử sử dụng nhiều hàm như OFFSET nhưng không thể tìm ra công thức có thể đưa ra kết quả.

Chúng ta hãy lấy một ví dụ về 100 giá trị trong cột A & chúng ta muốn tìm ra mỗi giá trị thứ 10 ^ trong cột B Các giá trị mẫu bắt đầu từ ô A1 bằng 1 đến ô A100 bằng 100; sau đây là ảnh chụp nhanh dữ liệu trong cột A:

img1

Để có kết quả, chúng ta cần làm theo các bước sau để khởi chạy trình soạn thảo VB Nhấp vào tab Nhà phát triển Từ nhóm Mã, chọn Visual Basic

img2

  • Sao chép đoạn mã dưới đây trong mô-đun chuẩn

Function INDEXN(InputRange As Range, N As Integer) As Variant

' returns every N-th item from InputRange' --- Comment

' select the desired target range for the function and' --- Comment

' enter as an array function with Ctrl+Shift+Enter.' --- Comment

Dim ItemList() As Variant, c As Range, i As Long, iCount As Long

i = 0

iCount = 0

ReDim ItemList(1 To InputRange.Cells.Count \ N)

For Each c In InputRange

i = i + 1

If i Mod N = 0 Then

iCount = iCount + 1

On Error Resume Next

ItemList(iCount) = c.Value

On Error GoTo 0

End If

Next c

INDEXN = ItemList

If InputRange.Rows.Count >= InputRange.Columns.Count Then

INDEXN = Application.WorksheetFunction.Transpose(INDEXN)

End If

Erase ItemList

End Function

img3

Để nhận mọi mục thứ n trong phạm vi B1: B10, công thức là \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Lưu ý: đây là công thức mảng; do đó, phải nhấn tổ hợp phím Ctrl + Shift + End.

img4

Để nhận mọi giá trị thứ 7 ^ từ phạm vi A1: A100; chúng ta sẽ thay đổi đối số cuối cùng từ 10 thành 7 & công thức sẽ là \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}

img5

Bằng cách này, chúng ta có thể trả lại mọi mục thứ n từ một trang tính sang trang tính chính.

Công thức trong trang tính khác sẽ chứa tham chiếu trang tính \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}

img6

Kết luận: Với sự trợ giúp của Hàm do người dùng xác định ở trên, chúng ta có thể linh hoạt để tìm ra từng mục thứ n từ trang tính này sang trang tính khác.

image 48

Nếu bạn thích blog của chúng tôi, hãy chia sẻ nó với bạn bè của bạn trên Facebook. Và bạn cũng có thể theo dõi chúng tôi trên Twitter và Facebook. Chúng tôi rất muốn nghe ý kiến ​​của bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện, bổ sung hoặc đổi mới công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi tại [email protected]