ข้ามไปเนื้อหา

วิธีใช้:การเรียงลำดับ

จากวิกิพีเดีย สารานุกรมเสรี

การใช้ตารางเรียงลำดับได้

[แก้]

ตารางจัดเรียงได้ดูได้จากลูกศรในเซลล์หัวตาราง เมื่อคลิกที่ลูกศรดังกล่าวจะทำให้มีการเรียงแถวตารางตามค่าในสดมภ์ที่เลือก โดยเมื่อคลิกครั้งแรกจะเรียงลำดับจากน้อยไปมาก และเมื่อคลิกครั้งถัดไปจะสลับกันระหว่างเรียงจากน้อยไปมากและมากไปน้อย

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

ตัวอย่าง

[แก้]

นี่เป็นตัวอย่างของตาราง เรียงลำดับได้ ขนาดเล็ก

name data more data
cats 273 53
dogs 65 8,492
mice 1,649 548

ตารางที่มีหัวเรื่องซับซ้อนมากขึ้น

[แก้]

ตารางที่มีหัวเรื่องซับซ้อนกว่าตารางแรกก็เรียงลำดับได้อย่างถูกต้อง ดูตัวอย่าง

name data columns another column
data more data
cats 273 53 1
dogs 65 8,492 2
mice 1,649 548 3

ตารางที่มีแถวข้อมูลซับซ้อน

[แก้]

ตารางสามารถมีเซลล์ที่ครอบคลุมหลายแถวได้ โดยใช้ |rowspan=n (ดู วิธีใช้:rowspan)

ต้องระบุจำนวนแถวสำหรับการใช้ rowspan แต่ละครั้ง ก่อนสามารถเรียงลำดับได้ การตั้งค่า rowspan ต้องถูกต้อง การจัดระเบียบ rowspan ที่ไม่ถูกต้องจะทำให้ตัวเลือกการเรียงลำดับเสีย ทำให้ได้ข้อมูลไม่ถูกต้อง ดูตัวอย่างด้านล่าง

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

จำนวน rowspan ที่ถูกต้อง โดยเรียงลำดับใช้การได้

name popularity data more data year
cats popular pet 273 53 2013
dogs 65 8,492 2014
mice 1,649 548

สังเกตว่าหลังจากเรียงลำดับแล้ว เซลล์ที่ rowspan จะตัดเข้าสู่แถวและซ้ำเนื้อหาของแถวเหล่านั้น (ปี "2014" ในตัวอย่าง)

จำนวน rowspan ไม่ถูกต้องจะทำให้การเรียงลำดับเสีย และทำให้แถวและสดมภ์ผสมปนเปกัน

การใช้ rowspan ที่ไม่ดีหยุดตัวเลือกการเรียงลำดับ
name popularity data more data year
cats popular pet 273 53 2013
dogs 65 8,492 2014
mice 1,649 548

เครื่องมือแก้ไขและ rowspan ตารางออนไลน์

[แก้]

มีตัวแก้ไขตารางวิกิออนไลน์อย่างง่ายที่นี่

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

ตัวเลือกสำหรับการเพิ่มสดมภ์ในจอภาพแคบ

[แก้]

หัวเรื่องแนวตั้ง

[แก้]
ดู: แม่แบบ:Vert header
name
data
more data
another column
cats 273 53 1
dogs 65 8,492 2
mice 1,649 548 3

แม่แบบนี้ยังใช้งานได้กับหัวเรื่องที่ทอดข้ามหลายแถวหรือสดมภ์ (โดยใช้ rowspan และ colspan) หมายเหตุว่าไม่มีขีดตั้ง | ระหว่าง rowspan=2 และ {{vert header

name
data columns
another column
data
more data
cats 273 53 1
dogs 65 8,492 2
mice 1,649 548 3
{| class="wikitable sortable"
|-
! rowspan=2 {{vert header|stp=1|name}}
! colspan=2 {{vert header|data columns}}
! rowspan=2 {{vert header|stp=1|another column}}
|-
! {{vert header|stp=1|data}}
! {{vert header|stp=1|more data}}
|-
| cats
| 273
| 53
| 1
|-
| dogs
| 65
| 8,492
| 2
|-
| mice
| 1,649
| 548
| 3
|}

แป้นทุติยภูมิ

[แก้]

หากสดมภ์หนึ่งมีค่าหนึ่งหลายครั้งแล้ว การเรียงลำดับสดภม์จะรักษาอันดับของแถวภายในเซตย่อยแต่ละเซตที่มีค่าเดียวกันในสดมภ์นั้น (การเรียงลำดับเสถียร) ฉะนั้น การเรียงลำดับที่อาศัยแป้นปฐมภูมิ ทุติยภูมิ ตติยภูมิ ฯลฯ สามารถกระทำได้โดยเรียงลำดับแป้นที่สำคัญน้อยที่สุดก่อน ตัวอย่างเช่น ในการเรียงลำดับตารางด่านล่างนี้ในสดมภ์ "ข้อความ" ตามด้วยสดมภ์ "จำนวน" ให้คลิกหัวเรื่องสดมภ์ "จำนวน" ก่อน (แป้นเรียงลำดับทุติยภูมิ) แล้วตามด้วยหัวเรื่องสดมภ์ "ข้อความ" (แป้นเรียงลำดับปฐมภูมิ)

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

เลข ข้อความ วันที่ สกุลเงิน ข้อความเพิ่ม
4 a 01.Jan.2005 4.20 row 1
5 a 05/12/2006 7.15 row 2
1 b 02-03-2004 5.00 row 3
1 a 03-02-2004 5.00 row 4
2 x 13-apr-2005 row 5
2 a 13-apr-2005 row 6
3 a 17.aug.2006 6.50 row 7
3 z 25.aug.2006 2.30 row 8
3 z 28.aug.2006 5.50 row 9
3 z 31.aug.2006 3.77 row 10
3 z 01.sep.2006 1.50 row 11
25 z 01.sep.2006 1.50 row 12
Bottom

การสร้างตารางเรียงลำดับได้

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

สามารถทำให้ตารางจัดเรียงได้ผ่านจาวาสคริปต์ฝั่งลูกข่าย โดยเพิ่ม class="wikitable sortable" ไว้บรรทัดบนสุดของตาราง ตารางเหล่านี้จำเป็นต้องจัดรูปแบบอย่างเหมาะสม โดยมีปริมาณเซลล์ที่ถูกต้อง นอกจากนี้คุณยังต้องทำให้แน่ใจว่าหัวเรื่องของสดมภ์ของคุณมีการระบุอย่างเหมาะสมในข้อความวิกิ ใช้อักขระ ! ในวากยสัมพันธ์ตารางเพื่อการนี้

หากคุณกำลังใช้วิชวลเอดิเตอร์ คุณสามารถเปิดคำโต้ตอบคุณสมบัติของตารางและเลือกตัวเลือกจัดเรียงได้

ตัวอย่างง่าย

[แก้]

นี่เป็นรหัสวิกิของตารางที่แสดงในส่วน "ตัวอย่าง" ด้านบน และแสดงวิธีการปกติในการเปิดใช้งานการเรียงลำดับตาราง

{| class="wikitable sortable"
|-
! name
! data
! more data
|-
| cats
| 273
| 53
|-
| dogs
| 65
| 8,492
|-
| mice
| 1,649
| 548
|}

เครื่องหมาย ! บ่งชี้เซลล์ที่เป็นหัวเรื่องตาราง เพื่อให้ตารางนั้นจัดเรียงได้ แถวแรกของตารางจะต้องมีเฉพาะเซลล์หัวเรื่องดังกล่าว

อันดับการเรียงแถวในครั้งแรก

[แก้]

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

ข้อจำกัดและข้อยกเว้น

[แก้]

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

การทำให้สดมภ์ที่เลือกจัดเรียงไม่ได้

[แก้]

หากคุณต้องการให้สดมภ์ใดสดมภ์หนึ่งจัดเรียงไม่ได้ ให้เจาะจง class=unsortable ในลักษณะประจำของเซลล์หัวเรื่อง

มาร์กอัพวิกิ

{|class="wikitable sortable"
!Numbers!!Alphabet!!Dates!!Currency!!class=unsortable|จัดเรียงไม่ได้
|-
|1||Z||02-02-2004||5.00||สดมภ์
|-
|2||y||13-apr-2005||||นี้
|-
|3||X||17.aug.2006||6.50||จัดเรียง
|-
|4||w||01.Jan.2005||4.20||ไม่ได้
|-
|5||V||05/12/2006||7.15||เห็นไหม
|-
!Total: 15!!!!!!Total: 22.85!!
|}

สิ่งที่ปรากฏในเบราว์เซอร์ของคุณ

Numbers Alphabet Dates Currency จัดเรียงไม่ได้
1 Z 02-02-2004 5.00 สดมภ์
2 y 13-apr-2005 นี้
3 X 17.aug.2006 6.50 จัดเรียง
4 w 01.Jan.2005 4.20 ไม่ได้
5 V 05/12/2006 7.15 เห็นไหม
Total: 15 Total: 22.85

การยกเว้นการเรียงลำดับบางแถว

[แก้]

บางครั้งการยกเว้นแถวสุดท้ายของตารางจากกระบวนการเรียงลำดับมีประโยชน์ มีวิธีทำสองวิธี

ใช้หัวเรื่องเป็นท้ายเรื่อง

[แก้]

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

มาร์กอัพวิกิ

{|class="wikitable sortable"
!Name!!Surname!!Height
|-
|John||Smith||1.85
|-
|Ron||Ray||1.89
|-
|Mario||Bianchi||1.72
|-
!Name!!Surname!!Height
|}

สิ่งที่ปรากฏในเบราว์เซอร์ของคุณ

Name Surname Height
John Smith 1.85
Ron Ray 1.89
Mario Bianchi 1.72
Name Surname Height

วิธีนี้ใช้ได้กับทุกแถวที่อยู่ท้ายตารางซึ่งอยู่ติดกันและประกอบขึ้นจากเซลล์หัวเรื่องทั้งหมด

ท้ายเรื่องธรรมดา

[แก้]

วิธีนี้ใช้ class="sortbottom" ในแถวตารางที่ต้องการ (บรรทัดขึ้นต้นด้วย |-)

มาร์กอัพวิกิ

{|class="wikitable sortable"
!Name!!Surname!!Height
|-
|John||Smith||1.85
|-
|Ron||Ray||1.89
|-
|Mario||Bianchi||1.72
|- class="sortbottom"
|colspan="2" | Average:||1.82
|}

สิ่งที่ปรากฏในเบราว์เซอร์ของคุณ

Name Surname Height
John Smith 1.85
Ron Ray 1.89
Mario Bianchi 1.72
Average: 1.82

สามารถตรึงหลายบรรทัดไว้ท้ายตารางได้ ตราบเท่าที่บรรทัดดังกล่าวต่อเนื่องกัน

การสร้างโครงแบบการเรียงลำดับ

[แก้]

บังคับให้สดมภ์หนึ่งมีชนิดข้อมูลเฉพาะ

[แก้]

สามารถเพิ่มลักษณะประจำ data-sort-type="..." ในหัวเรื่องของสดมภ์เพื่อให้แน่ใจว่าเซลล์ที่อยู่ข้างใต้ถือเป็นข้อมูลชนิดที่ระบุ

ค่าต่อไปนี้ (ไม่ไวต่ออักษรใหญ่เล็ก) สมเหตุสมผลสำหรับ data-sort-type:

  • text
  • number
  • currency
  • url สำหรับที่อยู่เว็บไซต์
  • IPAddress สำหรับเลขที่อยู่ไอพี
  • date สำหรับรูปแบบวันที่มาตรฐานเฉพาะภาษา
  • isoDate สำหรับวันที่ในรูปแบบ ISO YYYY-MM-DD ดู: วันที่ ISO
  • usLongDate สำหรับวันที่ในรูปแบบสหรัฐ (เดือนมาก่อนวันที่)
  • time

ตัวอย่างเช่น

ข้อความวิกิ ไม่ใช้ data-sort-type ใช้ data-sort-type=text
{| class="wikitable sortable"
|-
! data-sort-type=text | Album
|-
 ... etc ...
|}
Album
21
193
215
21
19
21
Matinée
21
19
Everything Is New
Love & War
Album
21
193
215
21
19
21
Matinée
21
19
Everything Is New
Love & War

หากไม่มี data-sort-type=text ในหัวเรื่อง ตัวเรียงลำดับตารางจะสับสนกับชื่อเรื่องที่เป็นจำนวนในแถวแรก ๆ แล้วจะถือว่าทั้งสดมภ์เป็นจำนวน ทำให้มีการเรียงลำดับผิดโดยถือว่าชื่อเรื่องที่ไม่ใช่จำนวนเป็นศูนย์ไม่ว่าการเรียงลำดับพยัญชนะของข้อความเป็นอย่างไร

หมายเหตุว่าหากสดมภ์หนึ่งที่ไม่ประกาศ sort-type มีเฉพาะค่าจำนวน แต่มีการอ้างอิง <ref>...</ref> ต่อท้ายหลักสุดท้ายของจำนวนอย่างน้อยหนึ่งจำนวน อาจทำให้สดมภ์เรียงลำดับเป็นข้อความ (อักษรเลข) โดยปริยาย เช่น 1 12 2 27 289 3[17] 4 5 ... สามารถเลี่ยงได้โดยประกาศ sort type ดังนี้ ! data-sort-type="number"|Elev. (ft) แทน ! Elev. (ft)

ชนิดข้อมูลโดยปริยายของสดมภ์

[แก้]

หากคุณไม่ระบุ data-sort-type ภาวะการเรียงลำดับ (ชนิดข้อมูลซึ่งนอกเหนือจากตัวเลือก "น้อยไปมาก" หรือ "มากไปน้อย" จะเป็นตัวกำหนดลำดับการเรียง) ดังนี้

  • วันที่ (ดูด้านล่าง)
    • เกณฑ์: ส่วนย่อยไม่ว่างแรกอยู่ในรูป "DD-MM-YYYY", "DD-MM-YY" หรือ "DD mmm YYYY"
    • อันดับ: ค่าตัวเลขของ YYYYMMDD; สายอักขระ DDsMMsYYYY ที่ยาว 10 อักขระ (หากอักขระที่อยู่ในตำแหน่ง s มีค่าเท่ากันและเป็นตัวคั่น '/' หรือ '-') มีการจัดตำแหน่งเป็น YYYYMMDD, สายอักขระ DDsMMsYY ที่ยาว 8 อักขระ (หากอักขระที่ s มีค่าเท่ากันหรือเป็นตัวคั่น '/' หรือ '-') จัดเป็น 19YYMMDD ถ้า YY ≥ 50 และ 20YYMMDD ในกรณีอื่น และสายอักขระ "DD mmm YYYY" โดย mmm เป็นชื่อเดือน (แบบย่อ)
  • isoDate (ISO 8601)
    • เกณฑ์: รูปแบบ "± YYYY-MM-DD" ที่มีเลขโดด 1-4 หลักสำหรับปี "YYYY" ตั้งแต่ -9999 ถึง 9999, เดือนใช้เลขโดดเท่านั้น, รูปแบบ "± YYYY-MM-DDThh:mm:ss.sss±TH:TM" โดยที่ "hh" เป็นชั่วโมง, "mm" เป็นนาที, "ss.sss" เป็นวินาที และออฟเซตเขตเวลา "TH:TM" ค่าด้านขวาไม่ต้องใส่ก็ได้
    • อันดับ: ตัวเลข โดยเวลาในหน่วยมิลลิวินาทีตั้งแต่วันที่ 1 มกราคม 1970 UTC
  • "currency" (ภาวะนี้อาจมีประโยชน์สำหรับข้อมูลอื่นด้วย)
    • เกณฑ์: ส่วนย่อยไม่ว่างแรกที่ขึ้นต้นด้วย $, £, € หรือ ¥
    • อันดับ: ตัวเลข โดยไม่สนใจสัญลักษณ์สกลุเงิน และอักษรทั่วไปและเครื่องหมายจุลภาค แต่ไม่รวมช่องว่าง สังเกตว่าไม่สามารถใช้สัญกรณ์วิทยาศาสตร์ได้เนื่องจาก e และ E ถูกลบออก
  • ตัวเลข
    • เกณฑ์: ส่วนย่อยไม่ว่างแรกที่ประกอบด้วยเลขโดด จุด เครื่องหมายจุลภาค ช่องว่าง "+", "-" อาจตามด้วย "e" หรือ "E" และสายอักขระที่ประกอบด้วย "+", "-", เลขโดด
    • อันดับ: หลังลบเครื่องหมายจุลภาคและช่องว่าง (ถ้ามี) แล้ว หากสาขอักขระขึ้นต้นด้วยจำนวน อันดับจะเป็นตัวเลขตามจำนวนแรกในสายอักขระ (ใช้ parseFloat) ถือเป็นศูนย์หากว่าง ในกรณีอื่น (parseFloat กลับคืน NaN) ส่วนย่อยดังกล่าวจะจัดตำแหน่งเหมือนกับ -∞
  • สายอักขระ
    • เกณฑ์: กรณีอื่นทั้งหมด; เพื่อหลีกเลี่ยงภาวะอื่น ให้ขึ้นด้นด้วย "&" ซ่อน; สามารถทำได้อย่างสะดวกด้วย m:แม่แบบ:sms (backlinks edit) ซึ่งยังเปิดให้เขียนข้อความซ่อนเพิ่มเติม เป็นแป้นการเรียงลำดับ ขณะที่แม่แบบคล้ายกันข้างต้นมีการเรียก ณ ท้ายส่วนย่อยตาราง แต่จะเรียกตารางนี้ตั้งแต่เริ่ม
    • อันดับ: หลังการแปลงอักษรใหญ่เป็นอักษรเล็ก อันดับคือ แอสกี รายการบางส่วนแสดงอันดับ ! "# $% & '() * +, -. / 09:; <=>? @ [\] ^ _ 'az {|} ~ é— (ดูด้านล่าง ช่องว่างมาก่อนอักขระอื่น รหัสไม่แบ่งบรรทัด &nbsp; นับเป็นช่องว่าง ช่องว่างสามัญติดกันสองช่องนับเป็นหนึ่ง สำหรับช่องว่างหลายช่องสามารถใช้ &nbsp; หรือสลับ &nbsp; กับช่องว่างสามัญ)

หากมีชนิดที่เป็นไปได้ตรงมากกว่าหนึ่งชนิด จะเลือกใช้ชนิดแรกในอันดับข้างต้น ตัวอย่างเช่น "24-12-2007" ตรงกับวันที่ ฉะนั้นจึงไม่จัดเป็นตัวเลข จะละเลยป้ายระบุการจัดรูปแบบและมาร์กอัพเมื่อตัดสินว่าตรงกับชนิดใด

ภาวะการเรียงลำดับตัดสินจากแถวที่ไม่ว่าง 5 แถวแรกใต้หัวเรื่องหลังโหลดหน้า แต่ภาวะการเรียงลำดับนี้สามารถเปลี่ยนได้หลังลบแถว หรือเติมสดมภ์ ฉะนั้นเป็นความคิดที่ดีที่จะทำให้แน่ใจว่าส่วนย่อยทั้งหมดตรงกับเกณฑ์สำหรับชนิดข้อมูลที่ต้องการ การใช้แม่แบบแถวจะทำให้เป็นไปโดยสะดวกมาก

วิธีการทำให้แน่ใจว่าภาวะการเรีงยลำดับของแต่ละสดมภ์เป็นไปตามต้องการ คือ การระบุ data-sort-type ดูด้านบน

การระบุแป้นการเรียงลำดับสำหรับเซลล์

[แก้]

บางทีค่าของเซลล์ไม่ได้แจงส่วนอย่างถูกต้อง หรือผู้เขียนอาจต้องการเรียงลำดับแถวแบบพิเศษ (เช่น เซลล์ที่มีข้อควาาม "จอห์น โด" ควรเรียงลำดับเป็น "โด" ไม่ใช่ "จอห์น") สามารถทำได้โดยง่ายโดยตั้งลักษณะประจำ data-sort-value

มาร์กอัพวิกิ

{|class="wikitable sortable"
!Name and Surname!!Height
|-
|data-sort-value="Smith, John"|John Smith||1.85
|-
|data-sort-value="Ray, Ian"|Ian Ray||1.89
|-
|data-sort-value="Bianchi, Zachary"|Zachary Bianchi||1.72
|-
!Average:||1.82
|}

จะได้

Name and Surname Height
John Smith 1.85
Ian Ray 1.89
Zachary Bianchi 1.72
Average: 1.82

(ทำให้เรียงลำดับตามนามสกุล ไม่ใช่ชื่อ)

วิธีนี้มีประโยชน์ เช่น เมื่อเรียงลำดับยศทหารตามลำดับอาวุโส

มาร์กอัพวิกิ

{|class="wikitable sortable"
!Name and Surname!!ยศ
|-
|data-sort-value="Smith, John"|John Smith||data-sort-value="16"|สิบโท
|-
|data-sort-value="Ray, Ian"|Ian Ray||data-sort-value="8"|ร้อยเอก
|-
|data-sort-value="Bianchi, Zachary"|Zachary Bianchi||data-sort-value="10"|ร้อยโท
|}

จะได้

Name and Surname ยศ
John Smith สิบโท
Ian Ray ร้อยเอก
Zachary Bianchi ร้อยโท

ดูเพิ่มที่ mw:Help:Sorting#Specifying a sort key

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

data-sort-value="&quot;WORD"

data-sort-value="&#34;WORD"

การให้บางแถวอยู่ด้วยกันตลอด

[แก้]

สามารถใช้ data-sort-value เพื่อรักษาให้บางแถวอยู่ด้วยกันได้ ลำดับที่เจาะจงของแถวเหล่านี้จะคงเดิม ตัวอย่างคือการให้ "South Hollland" อยู่ตาม "Netherlands" ทันที ไม่ว่าลำดับหรือสดมภ์เรียงลำดับอย่างไร ดังนี้

{|class="wikitable sortable"
!Country/province!!Capital
|-
|France||Paris
|-
|Netherlands||Amsterdam
|-
|data-sort-value=Netherlands|South Holland||data-sort-value=Amsterdam|The Hague
|-
|UK||London
|}
Country/province Capital
France Paris
Netherlands Amsterdam
South Holland The Hague
Poland Warsaw
UK London

หากคุณมีแถวที่มี colspan การรักษาให้บางแถวอยู่ติดกันอาจทำได้ยากเล็กน้อย คุณสามารถใช้ class="expand-child" ในแถวได้ จะทำให้แถวนั้นอยู่ใต้แถวที่อยู่ด้านบนในรหัสตารางเสมอ ไม่ว่าแถวนั้นมีการเรียงลำดับอย่างไรในตาราง

{| class="wikitable sortable"
!style="width:9.3em"|Country!!Capital
|-
|'''France'''
|Paris
|- class="expand-child"
| colspan="2" | In Paris is the Eiffel Tower.
|-
|'''UK'''
|London
|- class="expand-child"
| colspan="2" | In the U.K. you cannot pay with euros,
|- class="expand-child"
| colspan="2" | and you drive on the left.
|-
|'''Germany'''
|Berlin
|- class="expand-child"
|colspan="2" | Germany includes the former DDR.
|}
Country Capital
France Paris
In Paris is the Eiffel Tower.
UK London
In the U.K. you cannot pay with euros,
and you drive on the left.
Germany Berlin
Germany includes the former DDR.

ปัญหาการเรียงลำดับตัวเลข

[แก้]
ค่าโดยปริยาย
Estimated attendance
500,000
200,000 - 400,000
100,000
60,000 - 350,000
40,000
35,000 - 50,000
20,000 - 100,000
10,000 - 100,000
6,000 - 7,000
5,000 - 10,000
ใช้
data-sort-type=number
Estimated attendance
500,000
200,000 - 400,000
100,000
60,000 - 350,000
40,000
35,000 - 50,000
20,000 - 100,000
10,000 - 100,000
6,000 - 7,000
5,000 - 10,000

ข้อความหยุดการเรียงลำดับเชิงตัวเลขโดยปริยายหากข้อความอยู่ก่อนจำนวน ข้อความตามหลังจำนวนบางทีหยุดการเรียงลำดับเชิงตัวเลขตั้งต้น ดูสารสนเทศเพิ่มเติมด้านล่าง

อ้างอิง <ref>...</ref> ตามหลังจำนวนไม่หยุดการเรียงลำดับตัวเลขโดยปริยายอีกต่อไป

ใส่ data-sort-type=number ในหัวเรื่องสดมภ์ เพื่อให้สิ่งต่อไปนี้ไม่หยุดการเรียงลำดับเชิงตัวเลขของสดมภ์นั้น

  • แม่แบบ {{N/A}}
  • ข้อความนำหน้าตัวเลข
  • เครื่องหมายแดช (dash)

เครื่องหมายแดชหลังจำนวนหยุดการเรียงลำดับเชิงตัวเลขของสดมภ์ ฉะนั้นพิสัย (30-40) จะหยุดการเรียงลำดับเชิงตัวเลข ลองคลิกปุ่มเรียงลำดับในตารางแรกด้านขวามือ และดูว่าการเรียงลำดับใช้การไม่ได้ ทางแก้หนึ่งคือใช้ 2 สดมภ์สำหรับพิสัย การใช้สองสดมภ์ทำให้เรียงลำดับได้ทั้งพิสัยต่ำสุดและพิสัยสูงสุด

อีกทางเลือกหนึ่งคือการใช้หนึ่งสดมภ์และเพิ่ม data-sort-type=numberในหัวเรื่องสดมภ์ คลิกปุ่มเรียงลำดับในตารางขวาสุด สำหรับสารสนเทศเพิ่มเติมดู meta:Help:Sorting#Sort modes และส่วนเกี่ยวกับการบังคับภาวะการเรียงลำดับสำหรับสดมภ์

เครื่องหมายบวก (+) ที่อยู่หน้าตัวเลข ไม่ หยุดการเรียงลำดับตัวเลขของสดมภ์ เครื่องหมายบวกในเซลล์ว่างอื่น ๆ สามารถหยุดการเรียงลำดับตัวเลขของสดมภ์ได้หากเซลล์ไม่ว่างแรกที่อยู่ในสดมภ์นั้นมีเฉพาะเครื่องหมายบวก เครื่องหมายบวกตามหลังจำนวนสามารถหยุดการเรียงลำดับตัวเลขได้หากเซลล์ไม่ว่างแรกที่อยู่ในสดมภ์นั้นประกอบด้วยตัวเลขตามด้วยเครื่องหมายบวก

"c." (circa หมายถึง "โดยประมาณ") มักพบในสดมภ์จำนวน จำเป็นต้องใส่ไว้หลังจำนวนเพื่อให้การเรียงลำดับตัวเลขใช้การได้ หรือจะย้ายไปอีกสดมภ์หนึ่งก็ได้ การเพิ่ม data-sort-type=number ไว้ที่หัวเรื่องของสดมภ์ไม่อนุญาตให้ใช้ c. นำหน้าตัวเลข

เลขศูนย์นำไม่จำเป็นสำหรับการเรียงลำดับตัวเลขของสดมภ์ หากดูเหมือนจำเป็น แสดงว่าสดมภ์กำลังเรียงลำดับตามพยัญชนะ ให้ตรวจสอบเซลล์ที่มีอักขระอย่างอื่นนอกจากตัวเลข และแก้ไขเซลล์เหล่านั้นตามกฎข้างต้น

ปัญหาการเรียงลำดับวันที่

[แก้]

เฉพาะปี

[แก้]

การเรียงลำดับปีของสดมภ์ใช้การได้ตราบเท่าที่ไม่มีข้อความในสิ่งแรกในเซล์ในสดมภ์นั้น ปีต้องอยู่อันดับแรก การใส่ data-sort-type=date ในส่วนหัวสดมภ์ไม่เปลี่ยนแปลงกฎนี้

สามารถใส่ข้อความ ตามหลัง ปีในเซลล์ได้ ตัวอย่างเช่น

  • "FY" (ปีงบประมาณ) หลังเลขปี
  • การอ้างอิง
  • ถ้าจะใช้ให้ใช้ "c." (แปลว่า โดยประมาณ) หลังเลขปีด้วย
  • แดชทุกชนิดในเซลล์ว่างหยุดการเรียงลำดับปีของสดมภ์นั้น แต่สามารถใส่หลังเลขปีได้

แม่แบบ {{N/A}} ในเซลล์ในสดมภ์ปีไม่หยุดการเรียงลำดับปีของสดมภ์นั้น ซึ่งต่างจากการเรียงลำดับตัวเลขข้างต้น

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

ปีและเดือน

[แก้]

การเรียงลำดับวันที่ใช้ไม่ได้กับสดมภ์ที่มีปีและเดือนเท่านั้น (คือไม่มีวันที่) การเพิ่ม data-sort-type=date หรือ data-sort-type=isoDate ที่หัวเรื่องสดมภ์ไม่ช่วย ลองคลิกหัวเรื่องสดมภ์หลายครั้งในตารางด้านล่างได้ หมายเหตุว่าสดมภ์ที่มีหัวเรื่อง data-sort-type=isoDate อาจเรียงลำดับอย่างถูกต้องในบางเบราว์เซอร์ แต่เชื่อถือไม่ได้

ปีและเดือนในรูปแบบตัวเลข (YYYY-MM) ใช้ได้กับ data-sort-type=isoDate (ดูส่วนที่เกี่ยวข้องด้านล่าง)

Year and month
1999 Dec
1999 Jan
2004 May
2004 Aug
Year and month
1999 December
1999 January
2004 May
2004 August
Year and month
data-sort-type=date
1999 Dec
1999 Jan
2004 May
2004 Aug
Year and month
data-sort-type=date
1999 December
1999 January
2004 May
2004 August
Year and month
data-sort-type=isoDate
1999 December
1999 January
2004 May
2004 August
Month and year
Dec 1999
Jan 1999
May 2004
Aug 2004
Month and year
December 1999
January 1999
May 2004
August 2004
Month and year
data-sort-type=date
Dec 1999
Jan 1999
May 2004
Aug 2004
Month and year
data-sort-type=date
December 1999
January 1999
May 2004
August 2004

วันที่ เดือนและปี

[แก้]

การเรียงลำดับทำงานอย่างถูกต้องในตารางทั้งหมดด้านล่าง ถ้าใส่ปีก่อน ค.ศ. 100 (เช่น ค.ศ. 99) จะหยุดการเรียงลำดับ หากเลขสำหรับวันที่หายไป การเรียงลำดับก็หยุดเช่นกัน

Day, month, year
5 Dec 1999
7 Jan 1999
14 May 2004
4 Aug 2004
Day, month, year
5 December 1999
7 January 1999
14 May 2004
4 August 2004
Day, month, year
data-sort-type=date
5 Dec 1999
7 Jan 1999
14 May 2004
4 Aug 2004
Day, month, year
data-sort-type=date
5 December 1999
7 January 1999
14 May 2004
4 August 2004
Month, day, year
Dec 5, 1999
Jan 7, 1999
May 14, 2004
Aug 4, 2004
Month, day, year
December 5, 1999
January 7, 1999
May 14, 2004
August 4, 2004
Month, day, year
data-sort-type=date
Dec 5, 1999
Jan 7, 1999
May 14, 2004
Aug 4, 2004
Month, day, year
data-sort-type=date
December 5, 1999
January 7, 1999
May 14, 2004
August 4, 2004

ก่อนปี ค.ศ. 100 (รูปแบบวันที่ทุกแบบ)

[แก้]

สามารถเรียงลำดับได้ผ่าน data-sort-value ซ่อนโดยใช้วันที่ไอเอสโอ ร่วมกับ data-sort-type=isoDate

หมายเหตุ: ข้อความวิกิเรียงลำดับเหมือนกันสำหรับ 2 ตารางด้านล่าง สามารถแสดงรูปแบบวันที่ใดต่อผู้อ่านก็ได้

Date
5 Dec 111
7 Jan 35
5 Dec 207
111 BC
7 Jan 35 BC
Dec 207 BC
{|
|- style=vertical-align:top;
|
{| class="wikitable sortable" 
|-
! data-sort-type=isoDate | Date
|-
| data-sort-value="111-12-05" | 5 Dec 111
|-
| data-sort-value="35-01-07" | 7 Jan 35
|-
| data-sort-value="207-12-05" | 5 Dec 207
|-
| data-sort-value="-111" | 111 BC
|-
| data-sort-value="-35-01-07" | 7 Jan 35 BC
|-
| data-sort-value="-207-12" | Dec 207 BC
|}

ตารางด้านล่างใช้ค่า isoDate เดียวกันสำหรับ data-sort-value เช่นเดียวกับตารางด้านบน แต่มีการใช้รูปแบบวันที่หลายแบบสำหรับแสดงวันที่ต่อผู้อ่าน

Date
5 Dec 111
7 January 35
Dec 5, 207
about 111 BC
Jan 7, 35 BC
December 207 BC
{| class="wikitable sortable"
|-
! data-sort-type=isoDate | Date
|-
| data-sort-value="111-12-05" | 5 Dec 111
|-
| data-sort-value="35-01-07" | 7 January 35
|-
| data-sort-value="207-12-05" | Dec 5, 207
|-
| data-sort-value="-111" | about 111 BC
|-
| data-sort-value="-35-01-07" | Jan 7, 35 BC
|-
| data-sort-value="-207-12" | December 207 BC
|}

ปี เดือน วันที่ (ใช้ตัวเลข) วันที่ไอเอสโอ

[แก้]

ดู: วันที่ไอเอสโอ

"± YYYY-MM-DD" โดยมีเลขโดด 1 ถึง 4 หลักสำหรับปี "YYYY" ตั้งแต่ -9999 ถึง 9999 หากใช้เดือนต้องใช้เลขโดดสองหลัก การเรียงลำดับจะหยุดทำงานถ้าใช้เลขโดดหลักเดียวโดยไม่มีเลขศูนย์ให้ครบสองหลัก ส่วนวันที่สามารถใช้เลขโดดหลักเดียวหรือสองหลักก็ได้ สามารถใส่ข้อความหรือเครื่องหมายก่อนหรือตามวันที่ได้ พึงระลึกว่าควรเว้นช่องว่างในข้อความวิกิก่อนเลขปีสำหรับปีที่เป็นจำนวนลบ

การเรียงลำดับทำงานได้ดีที่สุดเมื่อเพิ่ม data-sort-type=isoDate ในหัวเรื่องสดมภ์ สามารถเพิ่ม BC หรือ BCE (ก่อนปี ค.ศ.) ได้เช่นกัน ทดสอบการใส่ข้อความอื่นก่อนและหลังวันที่ดังกล่าวได้

Date
(year-month-day)
ผิด มีใช้ทั้ง M และ MM
การเรียงลำดับเสีย
-90
c. 90
90-1-13
90-12-5
1011-08-01[2]
c. 207-11[1]
Date
(year-month-day)
isoDate ถูกต้อง
การเรียงลำดับใช้การได้
-90
c. 90
90-01-13
90-12-5
1011-08-1[2]
c. 207-11[1]
Date
(year-month-day)
isoDate ถูกต้อง
แต่ BCE หยุดการเรียงลำดับ
-90 BCE
c. 90
90-01-13
90-12-5
1011-08-1[2]
c. 207-11[1]
Date
(year-month-day)
ทำงานได้ดีกว่ากับ
data-sort-type=isoDate
การเรียงลำดับใช้การได้กับ BCE
-90 BCE
c. 90
90-1-13
90-12-5
1011-8-1[2]
c. 207-11[1]

ม่แบบ Dts วันที่และเดือน รูปแบบวันที่อื่นอีกมากมาย

[แก้]

ตารางตัวอย่างเหล่านี้ใช้แม่แบบ {{Dts}} ทั้งหมดเรียงลำดับอย่างถูกต้อง ดูข้อความวิกิ ("แก้ไข") ข้อความวิกิสำหรับหน่วยแรกในตารางแต่ละตารางแสดงในส่วนหัวตาราง

หมายเหตุ: ไม่มีสดมภ์ตารางใดที่ใช้ตัวดัดแปร data-sort-type= บางทีการใช้ data-sort-type= จะหยุดการเรียงลำดับ

แม่แบบ {{Dts}} กับรูปแบบวันที่ได้หลายรูปแบบ ดู แม่แบบ:Dts สำหรับตัวเลือกอื่น

Date
(Day and month)
{{dts|4 Jan}}
4 ม.ค.
28 ส.ค.
3 ม.ค.
29 ส.ค.
14 ธ.ค.
1 ม.ค.
Date
(Month and day)
{{dts|January 4}}
มกราคม 4
สิงหาคม 28
มกราคม 3
สิงหาคม 29
ธันวาคม 14
มกราคม 1
Date
(Month, day, year)
{{dts|1990|4|27}}
27 เมษายน 1990
8 สิงหาคม 1989
3 กุมภาพันธ์ 2006
4 ตุลาคม 2006
1 พฤศจิกายน 2004
11 มกราคม 2004

ตัวอย่างการตรวจจับชนิดข้อมูลอัตโนมัติ

[แก้]

สคริปต์เห็นสิ่งที่บรรจุในเซลล์ในแถวข้อมูล 5 แถวแรก ภาวะการเรียงลำดับจะกลายเป็นตัวเลข หากเซลล์แรก ๆ มีเฉพาะตัวเลข (เครื่องหมายจุลภาคและจุดที่ใช้ในการจัดรูปแบบตัวเลขถือเป็นตัวเลขด้วย) ลำดับการเรียงลำดับจะทำงานอย่างถูกต้องแม้เซลล์อื่นมีข้อความอยู่หลังตัวเลข (เช่น "80 โดยประมาณ") เซลล์ว่างถือเป็น "ศูนย์" เมื่อเรียงลำดับตัวเลข

sort-type: number
123,456,789
2,500,000,000
300,000,000
3,000,000
5,000,000
2,000 text
-4,000
aaa
-9,999
4,000
9,999
800,000
900,000
sort-type: text
123 564,589.7e12
9
70
-80
80 approx
abc 80
600
currencies
$ 9
$ 80
$ 70
$ 600
currencies
€ 9
€ 80
€ 70
€ 600
currencies
£ 9
£ 80
£ 70
£ 600
currencies
¥ 9
¥ 80
¥ 70
¥ 600
text
a 9
a 80
a 70
a 600
text
e 9
e 80
e 70
e 600

ตัวอย่างที่มี "a" ทำให้ได้การเรียงลำดับตามอักษร ตัวอย่างที่มี "e" ก็เช่นกัน ข้อมูลนั้นไม่รับรู้เป็นจำนวนในรูปแบบวิทยาศาสตร์

mixed notations
1.4285714285714E+17
1000000000000000000
-1000000000000000000
.0000000000000000001
-.0000000000000000001
-1.4285714285714E+17
1.4285714285714E-13
-1.4285714285714E-13
89 123 456 788
89,123,456,789
333
1e10
e 9
e 80
e 70
e 600
999e9
88e80
7e270
999e-9
88e-80
7e-270
-999e9
−999e9
-88e80
-7e270
-999e-9
-88e-80
-7e-270
e3
-e3
1e3
e9
e80
e270
6e11
8e11
first number in each element counts
7-4
2
4
22/7
111
percentage
7%
2
4
22
111
mixed notations
14
-14
11
-12 (retrograde)
12 or 13
12 (?)
c. 12
12 (approx.)
?

ตัวอย่างแรกแสดงให้เห็นว่าข้อความจัดตำแหน่งที่ศูนย์ และไม่อนุญาตให้ใช้ e3 สำหรับ 1,000 ให้ใช้ 1e3 แทน นอกจากนี้ยังแสดงให้เห็นว่าควรใช้ "-" แทน "−"

ตัวอย่างที่สองแสดงว่านิพจน์ไม่ได้เรียงตามค่าที่ประเมิน แต่ตามจำนวนแรก

ตัวอย่างที่สามแสดงให้เห็นว่าภาวะการเรียงลำดับตัวเลขยอมรับร้อยละ แต่จะละเลยภาวะการเรียงลำดับแท้จริง ฉะนั้นถ้าสดมภ์ใดมีร้อยละ จำนวนทั้งหมดจะต้องเขียนเป็นร้อยละด้วย

ตัวอย่างที่สี่แสดงอีกครั้งว่า "c. 12" เรียงลำดับที่ 0 ซึ่งตรงข้ามกับ 12 ที่มีข้อความตามหลัง ซึ่งเรียงลำดับที่ 12 กรณีที่ส่วนย่อยดังกล่าวอยู่บนสุดของสดมภ์ จะทำให้เป็นภาวะการเรียงลำดับตามตัวอักษร

สีพื้นหลังในหัวเรื่องเรียงลำดับได้

[แก้]

สีพื้นหลังในหัวเรื่องอาจทำให้สดมภ์นั้นสูญเสียปุ่มเรียงลำดับ ดู ข้อผิดพลาด 31755 ตัวอย่างเช่น

Name Surname Height
John Smith 1.85
Ron Ray 1.89
Mario Bianchi 1.72
Average: 1.82

style="background:...;" ก่อให้เกิดปัญหา

ใช้ style="background-color:...;" เพื่อให้แสดงสี วิธีที่ถูกต้องเป็นดังนี้

{|class="wikitable sortable"
|-
!style="background-color:navajowhite" | Name
!style="background-color:navajowhite" | [[Surname]]
!style="background-color:navajowhite" | [http://example.com Height]
|-
|John
|Smith
|1.85
|-
|Ron
|Ray
|1.89
|-
|Mario
|Bianchi
|1.72
|- class="sortbottom"
|colspan="2" |Average: 
|1.82
|}

ทำให้ได้ตารางเรียงลำดับได้ดังนี้

Name Surname Height
John Smith 1.85
Ron Ray 1.89
Mario Bianchi 1.72
Average: 1.82