Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để tìm và lấy giá trị của ô hiển thị đầu tiên sau khi lọc trong Excel?

Trong một số trường hợp, bạn có thể cần lấy giá trị của ô hiển thị đầu tiên trong danh sách đã lọc. Làm thế nào để đạt được nó? Bài viết này sẽ chỉ cho bạn các phương pháp để giải quyết nó.

Tìm và lấy giá trị của ô hiển thị đầu tiên sau khi lọc bằng công thức mảng
Tìm và lấy giá trị của ô hiển thị đầu tiên sau khi lọc bằng VBA


Tìm và lấy giá trị của ô hiển thị đầu tiên sau khi lọc bằng công thức mảng

Bạn có thể áp dụng công thức mảng sau để nhận giá trị của ô hiển thị đầu tiên trong danh sách được lọc. Hãy làm như sau.

1. Chọn một ô trống để đặt giá trị hiển thị đầu tiên, nhập công thức bên dưới vào đó, rồi nhấn Ctrl + sự thay đổi + đăng ký hạng mục thi các phím đồng thời.

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))

Chú thích: Trong công thức, C2: C19 là danh sách được lọc mà bạn muốn trả về giá trị ô hiển thị đầu tiên, C2 là ô đầu tiên của danh sách. Bạn có thể thay đổi chúng khi bạn cần.

Sau đó, bạn có thể thấy giá trị của ô hiển thị đầu tiên trong danh sách đã lọc được điền vào ô đã chọn như hình minh họa ở trên.


Tìm và lấy giá trị của ô hiển thị đầu tiên sau khi lọc bằng VBA

Bên cạnh việc sử dụng công thức mảng ở trên để nhận giá trị của ô hiển thị đầu tiên trong danh sách được lọc, bạn có thể chạy tập lệnh VBA bên dưới để nhanh chóng trả về ô hiển thị đầu tiên của danh sách đã lọc. Hãy làm như sau.

1. Chọn một ô trống chẳng hạn như E8 để đặt giá trị ô hiển thị đầu tiên của danh sách đã lọc.

2. nhấn Khác + F11 các phím đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

3. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, nhấp Chèn > Mô-đun. Sau đó sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun.

Mã VBA: tìm và lấy giá trị của ô hiển thị đầu tiên sau khi lọc trong Excel

Sub FirstVisibleCell()
   With Worksheets("Sheet1").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With
End Sub

Chú thích: Trong mã, Sheet1 là tên trang tính chứa danh sách đã lọc. “C” là tên cột mà bạn muốn lấy giá trị hiển thị đầu tiên. Bạn có thể thay đổi chúng khi bạn cần.

3. Nhấn nút F5 để chạy mã, sau đó ô hiển thị đầu tiên của danh sách được lọc nằm trong cột C sẽ được điền vào ô E8 ngay lập tức.


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (17)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào để Tìm và Nhận Giá trị của mười (10) Ô Có thể Nhìn thấy Đầu tiên Sau khi Lọc tổng phụ Trong Excel?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ola,


Como surfaceo para saber o número da célula toda vez que realizo o filtro automático no vba qua loop?
Por exelo, ao filtrar o valor 1, retornou as linhas 2, 3 e 4. No próximo loop filtro o valor 2 e retorna as linhas 19, 20, 22.
Como surfaceo para que eu realizar esse filtro eu pegue exatamente o valor da linha atual da linha do filtro e não o valor da primeira linha da planilha?
Cảm ơn bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mô-đun xuất sắc trong VBA, hoạt động hiệu quả Tôi đánh giá cao điều này! Cảm ơn rất nhiều cho bài đăng này !!!!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bất kỳ ai có thể giải thích rằng công thức này thực sự hoạt động như thế nào?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi tiếp tục gặp lỗi Thời gian chạy '91' Biến đối tượng hoặc Với biến khối chưa được đặt. Trang tính của tôi là Sheet1 có tiêu đề AllBrands. Đây là công thức của tôi:

Sub FirstVosystemCell ()
Với Worksheets ("ALLBRANDS"). AutoFilter.Range
ActiveCell.Value2 = Range ("H" & .Offset (1, 0) .SpecialCells (xlCellTypeVosystem) (1) .Row) .Value2
Kết thúc với

End Sub

Bất kỳ trợ giúp sẽ được đánh giá cao!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Bub!
Mã hoạt động tốt trong trường hợp của tôi. Bạn đang sử dụng phiên bản Excel nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thật không may - không phải công thức - mang lại cho tôi lỗi #VALUE cũng như VBA hoạt động đối với tôi, tạo cho tôi lỗi thời gian chạy '1004'
Thật tệ vì tôi có Office 2019 và tôi đã mong đợi một trong những tính năng này hoạt động khi lọc các ô cụ thể ... :-(
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
‌Wonderful🌺 Cảm ơn một triệu
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn một triệu🙏🌺
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nó hoạt động. Cám ơn rất nhiều...
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Công thức này hoạt động, nhưng hãy lưu ý rằng nếu bạn có các ô trống, công thức có thể hoạt động sai và chọn giá trị đầu tiên trong toàn bộ bảng, không chỉ trong kết quả đã lọc. Cách giải quyết mà tôi tìm thấy là thay thế các ô trống bằng NULL hoặc một khoảng trắng.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đầu tiên tôi có khoảng trống .... sau đó tất cả các ô đã được lấp đầy nhưng vẫn có phản hồi #VALUE. Hy vọng rằng công thức này cũng hoạt động trên văn bản ...! Cảm ơn vì lời khuyên dù sao ;-)
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Vì vậy, đối với tôi câu trả lời ở trên chỉ đơn giản là không hoạt động tốt. Tôi có một sổ làm việc với hơn 23 nghìn hàng và đây là thứ mà tôi đã làm việc để tối ưu hóa trong nhiều năm. Giải pháp của tôi đến với tôi sáng nay trong một nguồn cảm hứng khác.
Giả sử rằng bạn đang sử dụng BẢNG để lấy dữ liệu bạn muốn, hãy làm điều này: Một hàng (tôi đặt tên là "Rownmbr") dành riêng cho: = CELL ([@ [YOURFIRSTROW]])
Bên ngoài bảng, bạn tạo một công thức ở đâu đó: = INDIRECT (CONCATENATE ("A"; SUBTOTAL (105; Table1 [Rownmbr])))
Bạn chỉ cần thay thế "A" bằng bất cứ nơi nào bạn muốn lấy dữ liệu. Đối với tôi, điều này hoạt động tuyệt vời và nó không phải là một công thức nặng nề để sử dụng sẽ làm tài liệu bị sa lầy hơn nữa.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Giải pháp này đã hoạt động hoàn hảo đối với tôi, vì tôi đang sử dụng một cái bàn. Các hướng dẫn khó làm theo, vì vậy hy vọng phần giải thích này sẽ rõ ràng hơn một chút.
Giả sử bạn có một bảng excel có tên "Tên_bảng." Đầu tiên, tạo một cột mới trong bảng của bạn và đặt tên là "RowNumber". 
Trong cột mới đó, hãy nhập công thức "= ROW ([@ RowNumber])" Sau đó, điều này sẽ điền vào cột mới với
Trong ô mà bạn muốn hiển thị giá trị hiển thị đầu tiên, hãy nhập công thức "= INDIRECT (" A "& SUBTOTAL (105, Table_Name [RowNumber]))" "A" là chữ cái của cột chứa giá trị bạn muốn trở về.
Hàm SUBTOTAL (105, ...) trả về giá trị nhỏ nhất của tất cả các hàng hiển thị trong một phạm vi nhất định, trong trường hợp trên sẽ trả về số hàng của hàng hiển thị đầu tiên.
Hàm INDIRECT trả về giá trị của ô cho một địa chỉ ô đã cho. Đây là lý do tại sao bạn cần phần đầu tiên của công thức chứa ký tự cột của cột mà bạn muốn hiển thị. Phần thứ hai của công thức sẽ trả về số hàng.


Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có thể giúp tôi viết công thức này trong google sheet với arrayformula () được không

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Trong đoạn mã VBA sau, bạn có thể vui lòng giải thích những gì không SpecialCells (xlCellTypeVosystem) (1) bần tiện? Là gì (1) sử dụng cho sau SpecialCells (xlCellTypeVosystem)?
ActiveCell.Value2 = Range ("C" & .Offset (1, 0) .SpecialCells (xlCellTypeVosystem) (1) .Row) .Value2
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn!
Không có bình luận nào được đăng ở đây

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL