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

จะค้นหาและรับค่าของเซลล์แรกที่มองเห็นได้หลังจากกรองใน Excel ได้อย่างไร

ในบางกรณีคุณอาจต้องรับค่าของเซลล์แรกที่มองเห็นได้ในรายการที่กรองแล้ว จะบรรลุได้อย่างไร? บทความนี้จะแสดงวิธีการแก้ปัญหา

ค้นหาและรับค่าของเซลล์แรกที่มองเห็นได้หลังจากกรองด้วยสูตรอาร์เรย์
ค้นหาและรับค่าของเซลล์แรกที่มองเห็นได้หลังจากกรองด้วย VBA


ค้นหาและรับค่าของเซลล์แรกที่มองเห็นได้หลังจากกรองด้วยสูตรอาร์เรย์

คุณสามารถใช้สูตรอาร์เรย์ต่อไปนี้เพื่อรับค่าของเซลล์แรกที่มองเห็นได้ในรายการที่กรอง กรุณาดำเนินการดังนี้

1. เลือกเซลล์ว่างสำหรับวางค่าแรกที่มองเห็นได้จากนั้นป้อนสูตรด้านล่างลงไปจากนั้นกดปุ่ม Ctrl + เปลี่ยน + เข้าสู่ คีย์พร้อมกัน

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

หมายเหตุ: ในสูตร C2: C19 คือรายการกรองที่คุณต้องการส่งคืนค่าเซลล์แรกที่มองเห็นได้ C2 คือเซลล์แรกของรายการ คุณสามารถเปลี่ยนได้ตามต้องการ

จากนั้นคุณจะเห็นค่าของเซลล์แรกที่มองเห็นได้ในรายการที่กรองแล้วซึ่งเติมในเซลล์ที่เลือกตามภาพด้านบนที่แสดง


ค้นหาและรับค่าของเซลล์แรกที่มองเห็นได้หลังจากกรองด้วย VBA

นอกเหนือจากการใช้สูตรอาร์เรย์ด้านบนเพื่อรับค่าของเซลล์แรกที่มองเห็นได้ในรายการที่กรองแล้วคุณสามารถเรียกใช้สคริปต์ VBA ด้านล่างเพื่อส่งคืนเซลล์แรกที่มองเห็นได้อย่างรวดเร็วของรายการที่กรอง กรุณาดำเนินการดังนี้

1. เลือกเซลล์ว่างเช่น E8 สำหรับวางค่าเซลล์แรกที่มองเห็นได้ของรายการที่กรอง

2 กด อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

3 ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างคลิก สิ่งที่ใส่เข้าไป > โมดูล. จากนั้นคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูล

รหัส VBA: ค้นหาและรับค่าของเซลล์แรกที่มองเห็นได้หลังจากกรองใน Excel

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

หมายเหตุ: ในรหัส Sheet1 คือชื่อแผ่นงานที่มีรายการที่กรอง “ C” คือชื่อคอลัมน์ที่คุณต้องการรับค่าแรกที่มองเห็นได้ คุณสามารถเปลี่ยนได้ตามต้องการ

3 กด F5 เพื่อเรียกใช้รหัสจากนั้นเซลล์แรกที่มองเห็นได้ของรายการที่กรองซึ่งอยู่ในคอลัมน์ C จะถูกเติมลงในเซลล์ E8 ทันที


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (17)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วิธีการค้นหาและรับค่าของสิบ (10) เซลล์แรกที่มองเห็นได้หลังจากการกรองผลรวมย่อยใน Excel?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี


Como faço para saber o número da célula toda vez que realizo o filtro automático no vba via loop?
ตัวอย่าง 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 faço 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?
ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
โมดูลที่ยอดเยี่ยมใน VBA ทำงานได้อย่างยอดเยี่ยม ฉันชื่นชมสิ่งนี้ ขอบคุณมากสำหรับโพสต์นี้!!!!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใครสามารถอธิบายได้ว่าสูตรนี้ทำงานอย่างไร?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันได้รับข้อผิดพลาดรันไทม์ '91' ตัวแปรอ็อบเจ็กต์หรือไม่ได้ตั้งค่าตัวแปรบล็อก แผ่นงานของฉันคือ Sheet1 ชื่อ AllBrands นี่คือสูตรของฉัน:

ย่อยก่อนVisibleCell()
ด้วยแผ่นงาน("ALLBRANDS").AutoFilter.Range
ActiveCell.Value2 = ช่วง ("H" & .Offset (1, 0) เซลล์พิเศษ (xlCellTypeVisible)(1).Row).Value2
จบด้วย

ย่อยสิ้นสุด

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคุณบับ
รหัสทำงานได้ดีในกรณีของฉัน คุณใช้ Excel เวอร์ชันใดอยู่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
น่าเสียดาย - ทั้งสูตร - ที่ให้ข้อผิดพลาด #VALUE หรือ VBA ทำงานให้ฉันข้อผิดพลาดรันไทม์ '1004'
น่าเสียดายที่ฉันมี Office 2019 และฉันคาดหวังว่าหนึ่งในฟีเจอร์เหล่านี้จะทำงานได้เมื่อกรองเซลล์เฉพาะ... :-(
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
‌ยอดเยี่ยม🌺 ขอบคุณล้าน🙏
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณล้าน🙏🌺
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มันได้ผล. ขอบคุณมาก...
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สูตรนี้ใช้ได้ แต่โปรดทราบว่าถ้าคุณมีเซลล์ว่าง สูตรอาจทำงานผิดพลาดและเลือกค่าแรกในตารางทั้งหมด ไม่ใช่แค่ในผลลัพธ์ที่กรองออกมาเท่านั้น วิธีแก้ปัญหาที่ฉันพบคือการแทนที่เซลล์ว่างด้วย NULL หรือช่องว่าง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ตอนแรกฉันมีช่องว่าง.... จากนั้นเซลล์ทั้งหมดก็เต็มแต่ยังคงมีการตอบกลับ #VALUE หวังว่าสูตรนี้จะใช้ได้กับข้อความเช่นกัน...! ขอบคุณสำหรับคำแนะนำนะคะ ;-)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ดังนั้นสำหรับฉัน คำตอบข้างต้นจึงใช้ไม่ได้ผล ฉันมีสมุดงานที่มีมากกว่า 23 แถวและเป็นสิ่งที่ฉันพยายามเพิ่มประสิทธิภาพตลอดหลายปีที่ผ่านมา วิธีแก้ปัญหาของฉันมาถึงเมื่อเช้านี้ในจุดประกายแรงบันดาลใจอีกจุดหนึ่ง
สมมติว่าคุณใช้ TABLE เพื่อรับข้อมูลที่คุณต้องการทำสิ่งนี้: หนึ่งแถว (ฉันตั้งชื่อว่า "Rownmbr") มีไว้สำหรับ: =CELL([@[YOURFIRSTROW]])
นอกตาราง คุณสร้างสูตรที่ไหนสักแห่ง:=INDIRECT(CONCATENATE("A";SUBTOTAL(105;Table1[Rownmbr])))
คุณเพียงแค่แทนที่ "A" ด้วยทุกที่ที่คุณต้องการรับข้อมูล สำหรับฉันแล้ววิธีนี้ใช้ได้ผลดี และไม่ใช่สูตรหนักที่จะใช้ซึ่งจะทำให้เอกสารยุ่งยากมากขึ้น
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วิธีนี้ใช้ได้ผลดีสำหรับฉัน เนื่องจากฉันใช้ตาราง คำแนะนำนั้นยากต่อการปฏิบัติตาม ดังนั้นหวังว่าคำอธิบายนี้จะชัดเจนขึ้นเล็กน้อย
สมมติว่าคุณมีตาราง excel ชื่อ "Table_Name" ขั้นแรก สร้างคอลัมน์ใหม่ในตารางของคุณและตั้งชื่อว่า "RowNumber" 
ในคอลัมน์ใหม่นั้น ป้อนสูตร "=ROW([@RowNumber])" จากนั้นจะเติมคอลัมน์ใหม่ด้วย
ในเซลล์ที่คุณต้องการแสดงค่าแรกที่มองเห็นได้ ให้ป้อนสูตร "=INDIRECT("A"&SUBTOTAL(105,Table_Name[RowNumber]))" "A" คือตัวอักษรของคอลัมน์ที่เก็บค่าที่คุณต้องการ ที่จะกลับมา
ฟังก์ชัน SUBTOTAL(105,...) ส่งคืนค่าต่ำสุดของแถวที่มองเห็นได้ทั้งหมดในช่วงที่กำหนด ซึ่งในกรณีข้างต้นจะคืนค่าหมายเลขแถวของแถวแรกที่มองเห็นได้
ฟังก์ชัน INDIRECT ส่งคืนค่าของเซลล์สำหรับที่อยู่เซลล์ที่ระบุ นี่คือเหตุผลที่คุณต้องการให้ส่วนแรกของสูตรมีตัวอักษรประจำคอลัมน์ของคอลัมน์ที่คุณต้องการแสดง ส่วนที่สองของสูตรจะคืนค่าหมายเลขแถว


ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณช่วยฉันเขียนสูตรนี้ใน Google ชีตด้วย arrayformula () ได้ไหม

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ในโค้ด VBA ต่อไปนี้ คุณช่วยอธิบายได้ไหมว่าคืออะไร เซลล์พิเศษ(xlCellTypeVisible)(1) หมายถึง? คืออะไร (1) ใช้สำหรับหลัง เซลล์พิเศษ (xlCellTypeVisible)?
ActiveCell.Value2 = ช่วง ("C" & .Offset (1, 0) เซลล์พิเศษ (xlCellTypeVisible)(1).Row).Value2
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอขอบคุณ!
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL