วิธีรับส่วนหัวเรียง / กรองหลายแถวใน excel


17

ฉันมีสเปรดชีตซึ่งใช้ 2 แถวสำหรับข้อมูลส่วนหัว การกรองโดยการเลือกคอลัมน์จะถือว่ามีข้อมูลส่วนหัวเพียง 1 แถวเท่านั้น การเรียงลำดับมีช่องทำเครื่องหมายแถวส่วนหัว แต่จะสลับเฉพาะการรักษาแถวแรกเป็นส่วนหัว

มีวิธีทำให้ Excel ปฏิบัติต่อสองแถวแรกในฐานะส่วนหัวหรือไม่?

คำตอบ:


18

ไม่ละเว้นแถวแรกจากช่วงของคุณเมื่อคุณกรองอัตโนมัติ วิธีนี้ปุ่มตัวกรองอัตโนมัติจะปรากฏเฉพาะในแถวส่วนหัวด้านล่างของคุณและข้อมูลจะถูกกรอง ฉันคาดว่าตอนนี้แถวส่วนหัวที่สองของคุณจะถูกดึงเข้าสู่ 'ข้อมูล' ของคุณ

คุณไม่สามารถเลือกเซลล์เดียวและทำให้ excel เข้าใจได้ คุณต้องเลือกช่วงของเซลล์ที่คุณต้องการให้ excel รวมไว้


มันคือ. ฉันไม่ทราบว่าฉันสามารถเลือกเซลล์ที่ต้องการเพื่อเริ่มการกรองได้ซึ่งตรงข้ามกับการเลือกคอลัมน์
Dan Neely

7

วิธีง่ายๆในการบรรลุฟังก์ชั่นการจัดเรียงโดยใช้ส่วนหัวแถวหลายคือการแทรกแถวที่ว่างเหนือแถวที่คุณต้องการเพื่อจัดเรียงตาม(นึกคิดมันเป็นด้านล่างมากที่สุดในส่วนหัวของคุณ. ถ้าไม่ทำให้มันดังนั้น.) จากนั้นคลิกที่หมายเลข 'แถว' เพื่อไฮไลต์แถวว่าง คลิกขวาที่แถวนั้นแล้วเลือก "ซ่อน 'แถวใหม่ที่ว่างเปล่าจะหายไปจากส่วนหัวของคุณในแบบที่คุณต้องการให้ดูและ Excel จะแปลความหมายแถวหมวดหมู่ของคุณเป็นส่วนหัว


2

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


นี่คือคำตอบที่ถูกต้องและง่ายที่สุด ใช้งานได้ใน excel 2016 เนื่องจากเป็นคำถามที่เก่ากว่ามาก
Shawn

ขอขอบคุณ! ทำไมคนอื่น ๆ ที่นี่ถึงทำมันซับซ้อน?
291695

@ user291695: ฉันคาดเดาจากวันที่ใน OP ว่าเป็นวิธีที่มันอาจจะทำสำหรับ MS Office รุ่นเก่าเช่นเดียวกับในคำตอบที่เก่ากว่าและคำตอบที่ใหม่กว่าก็ไม่สมเหตุสมผล ไม่ทราบว่าแน่นอน
Fr0zenFyr

1

ในการกรองรายการที่มี 2 ส่วนหัวแถวโดยที่แถวที่สองมีส่วนหัวของคอลัมน์นี่คือสิ่งที่ฉันทำ

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

1

เอาล่ะงานต่อไปนี้ใน Excel 2010 แม้หลังจากบันทึกไฟล์กลับเป็น Excel 2007 แล้วเปิดใหม่ (ดังนั้นจึงสามารถใช้งานได้ใน Excel 2007 เช่นกัน ... )

สมมติว่าส่วนหัว 3 แถว ตั้งค่าช่วงตัวกรองสเปรดชีตเป็นเริ่มที่เซลล์ $ A $ 4 และตรวจสอบให้แน่ใจว่าครอบคลุมข้อมูลทั้งหมดที่คุณต้องการเรียงลำดับ บันทึกไฟล์

ตั้งแต่นี้ไปการเรียงลำดับใด ๆ จะถือว่าแถว 1 ถึง 3 เป็นส่วนหัวและเรียงลำดับจากแถว 4 เป็นต้นไปเท่านั้น - ยกเว้นคุณเปลี่ยนหรือยกเลิกช่วงตัวกรอง ...


การตอบสนองจาก deedgess ทำงานสำหรับฉัน เมื่อคุณเพิ่มตัวกรอง excel ถือว่าทุกแถวด้านบนเป็นส่วนหัว ในกรณีของฉันฉันมีส่วนหัว 2 แถว ฉันเลือกแถว 2 แล้วเปิดตัวกรอง จากนั้นฉันเลือกการจัดเรียงแบบกำหนดเองและทำเครื่องหมายในช่องสำหรับส่วนหัว เมื่อการเรียงเกิดขึ้นทั้งแถว 1 และแถว 2 ยังคงเป็นส่วนหัว

ที่น่าสนใจเมื่อฉันทำใน Excel 1911 การเรียงลำดับด้วยตัวกรองแบบเลื่อนลงทำงานได้ แต่ Custom Sort ไม่ได้: ใส่แถวที่ 2 อยู่ แต่แถวที่ 1 ได้เรียงลำดับพร้อมกับทุกอย่างอื่น ดังนั้นค่า "ต่ำสุด" จากข้อมูลจริงของฉันจึงอยู่ในแถวที่ 1 และแถวที่ 1 ดั้งเดิมติดอยู่ในช่วงข้อมูลของฉัน
pateksan

1

ฉันรู้ว่าฉันใช้ SuperUser และไม่ได้อยู่ใน StackOverflow แต่การแก้ไขปัญหานี้สามารถพบได้ในการใช้รหัส VBA ใน Excel 2016

ฉันมีปัญหาที่คล้ายกัน (ซับซ้อนกว่า)

ฉันต้องการเพิ่มตัวกรองบางตัวในคอลัมน์ที่ชัดเจน แต่ไม่ได้อยู่ในแถวที่ 1 เฉพาะในแถวที่ 2 เท่าที่คุณเห็นในการติดตามหน้าจอ

ป้อนคำอธิบายรูปภาพที่นี่

ฉันได้ลองใช้ Excel GUI แต่ดูเหมือนว่าเป็นไปไม่ได้ดังนั้นฉันจึงเขียนโค้ดต่อไปนี้:

'********************************************************
'* SetFilter()
'********************************************************
'* PUBLIC method to call to define CUSTOM AutoFilter
'* on complex header.
'********************************************************

Sub SetFilter()
  'Compute last row number
  Dim nLast As Long
  nLast = Range("A" & Rows.Count).End(xlUp).Row

  'Lock screen update 
  Application.ScreenUpdating = False

  'Unmerge merged cells to allow adding filter
  Range("A1:A2").MergeCells = False
  Range("B1:B2").MergeCells = False
  Range("C1:C2").MergeCells = False
  Range("D1:D2").MergeCells = False
  Range("E1:E2").MergeCells = False
  Range("F1:F2").MergeCells = False

  'Add filter on row 2 and not 1  
  Range("A2:Z" & nLast).Select
  Selection.AutoFilter

  'Remove (or Hide) filter combobox for some columns
  Selection.AutoFilter Field:=GetColumnIndex("C"), VisibleDropDown:=False
  Selection.AutoFilter Field:=GetColumnIndex("G"), VisibleDropDown:=False
  Selection.AutoFilter Field:=GetColumnIndex("H"), VisibleDropDown:=False

  'Merge unmerged cells to restore previous state
  Range("A1:A2").MergeCells = True
  Range("B1:B2").MergeCells = True
  Range("C1:C2").MergeCells = True
  Range("D1:D2").MergeCells = True
  Range("E1:E2").MergeCells = True
  Range("F1:F2").MergeCells = True

  'Unlock screen update 
  Application.ScreenUpdating = True

End Sub

'********************************************************
'* GetColumnIndex()
'********************************************************
'* return column's index from column letters
'********************************************************

Function GetColumnIndex(sColLetter As String) As Integer
    Dim n As Integer: n = 0
    Dim iMax As Integer: iMax = Len(sColLetter)
    Dim i As Integer
    Dim sChar As String
    Dim c As Integer

    For i = 1 To iMax
        sChar = Mid(sColLetter, i, 1)
        c = 1 + Asc(sChar) - Asc("A")
        n = n * 26 + c
    Next

    If n = 1 Then
      n = 1
    End If

    GetColumnIndex = n
End Function

ตรรกะของรหัสนี้คือ

A. Unmerge ผสานเซลล์ส่วนหัวในแนวตั้งเพื่ออนุญาตให้เพิ่มตัวกรองในแถว 2

Range("A1:A2").MergeCells = False

ไม่มีการรวมเซลล์ A1 และ A2

B. เพิ่มตัวกรองอัตโนมัติในเซลล์ทั้งหมดของแถวที่ 2

Range("A2:Z" & nLast).AutoFilter

ตัวกรองอัตโนมัติถูกสร้างขึ้นสำหรับเซลล์ในทุกแถวยกเว้นแถว 1

C. ลบหรือซ่อนตัวกรอง Combobox สำหรับบางคอลัมน์

Selection.AutoFilter Field:=GetColumnIndex("C"), VisibleDropDown:=False

ซ่อน DropBox ของคอลัมน์ "C"

D. ผสานเซลล์ที่ไม่ได้ผสานเพื่อคืนค่าสถานะเดิม

Range("A1:A2").MergeCells = True

เซลล์ A1 และ A2 จะรวมกันอีกครั้ง


0

Excel 2007 สามารถตรวจจับได้อย่างชาญฉลาดหากคุณมีส่วนหัวแบบหลายแถว ฉันทำการทดลองง่าย ๆ ก่อนที่จะเขียนสิ่งนี้

ก่อนทำการเรียงลำดับแรกให้วางเคอร์เซอร์ไว้ด้านล่างส่วนหัว แค่นั้นแหละ! การเรียงลำดับดีการกรองดี Excel ละเว้นแถวที่ 1 ของส่วนหัวของฉัน มันจะประมวลผลแถวที่ 2 เป็นส่วนหัวที่แท้จริง


3
ไม่นี่ไม่ได้ เป็นความจริงที่ Excel 07 สามารถตรวจจับส่วนหัวแบบหลายแถวโดยอัตโนมัติในบางกรณี แต่ขึ้นอยู่กับเนื้อหาของเซลล์ไม่ใช่เซลล์ที่คุณคลิก ตัวอย่างเช่นหากสองแถวแรกเป็นข้อความและทุกอย่างด้านล่างเป็นตัวเลข Excel จะถือว่า 2 แถวแรกเป็นส่วนหัวทั้งสอง
Josh

0

ไฮไลต์เซลล์ที่ต้องเรียงลำดับ (ทั้งหมดยกเว้นส่วนหัว) แล้วเลือกตัวกรอง


0

ฉันใช้ Excel 2010 เพื่อรักษาแถวส่วนหัว (เช่น 4 แถวแรก) ให้ไฮไลต์แถวที่ 5 แล้วเปิดตัวกรอง แถว 1 - 4 ไม่รวมอยู่ในตัวกรอง


0

ฉันมีปัญหาเดียวกันดังนั้นการมีส่วนร่วมของทุกคนทำให้ฉันไปถึงวิธีการทำงานให้ฉัน (จนถึงตอนนี้)

  1. เพิ่มแถวว่างด้านล่างส่วนหัวของคุณ (ถ้าส่วนหัวของคุณคือ 5 แถวของข้อมูลและ / หรือขนาดเซลล์คี่แล้วแถวว่างใหม่ของคุณจะเป็นแถวที่ 6)

  2. คลิกที่ Row6 (ไปทางซ้ายสุด / อันที่จริงคลิกที่ "6" (Excel Row #) เพื่อเลือกทั้งแถว / ถึงอินฟินิตี้) โปรดอย่าคลิกเซลล์อื่นจนกว่าคุณจะทำ # 3 และ # 4 ด้านล่างเสร็จหรือคุณจะ 'ยกเลิกการเลือก' แถว คุณต้องการที่จะให้มัน 'เลือก'

  3. ไปที่แท็บ VIEW> ตรึงช่อง> ยกเลิกการตรึง (ก่อนอื่นให้ล้างข้อมูล)> ตรึง สิ่งนี้จะตรึงส่วนหัวของแถว 5 และแถวว่าง (แถว 6)

  4. กดปุ่ม "ALT" ค้างไว้จากนั้นกดปุ่มต่อไปนี้: D, F, F (นี่คือทางลัดเพื่อหมุน & เปิดปิด / ล้างตัวกรองทั้งหมดบนแผ่นงาน

  5. จากจุดนี้ไปข้างหน้าเมื่อใดก็ตามที่คุณกลับมาใช้ชีตนี้และคุณต้องเปิดตัวกรองเหล่านั้น (ถ้าคุณปิดไปก่อนหน้านี้ไม่ว่าด้วยเหตุผลใดก็ตาม) จากนั้น> เลือกแถวว่างของคุณ (ดังอธิบายใน # 2); > หมุนตัวกรองทั้งหมดของคุณ (ดังอธิบายใน # 4)

ขออภัยที่จะใช้คำฟุ่มเฟือย แต่หลังจากที่คุณทำมันสองสามครั้งมีแนวโน้มที่จะรักมัน (ถ้าคุณใช้ตัวกรองมาก)


0

ขั้นตอนที่ 1 เน้นแถวส่วนหัวด้านล่าง จากนั้นคุณสามารถเลือกเฉพาะเซลล์ในแถวหรือเลือกทั้งแถว

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

ขั้นตอนที่ 3 จากนั้นคลิกลูกศรแล้วเลือกตัวเลือกการเรียงลำดับเพื่อเรียงลำดับตารางทั้งหมดตามคอลัมน์นั้น

ขั้นตอนที่ 4 ในที่สุดคลิกที่ "เรียงลำดับและกรอง" และเลือก "กรอง" อีกครั้งหากคุณต้องการกำจัดลูกศร แต่ให้คงพื้นที่การเรียงที่กำหนดโดยตัวกรอง ตอนนี้คุณสามารถเรียงลำดับได้ตามปกติ Excel จะละเว้นแถวส่วนหัวพิเศษ


-1

อีกวิธีหนึ่งในการบรรลุผลในบางกรณีคือการป้อนค่าในคอลัมน์ที่สองที่จะทำให้ตัวกรองรวมไว้จากนั้นทำให้ข้อความของเซลล์นั้นตรงกับสีพื้นหลังของเซลล์ ไม่สวยเนื่องจากส่วนหัว (แถว 1) จะไม่อยู่กึ่งกลางแนวนอนในเซลล์ แต่จะทำงาน ...


-1

ฉันมีปัญหาเดียวกันและพบวิธีแก้ปัญหาที่เหมาะกับฉัน สำหรับทุกแถวในส่วนหัวที่คุณไม่ต้องการเห็นคุณสร้างตัวอักษรสีขาว (หรือสีพื้นหลัง) เมื่อคุณเรียงลำดับคุณจะไม่เห็นส่วนหัวเดียวกันทั้งหมดในแถว ไปไม่ดีเมื่อคุณต้องการเปลี่ยนแปลงบางอย่าง แต่ในกรณีนี้คุณสามารถทำให้เป็นสีเทาอ่อนได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.