วิธีใช้:การเรียงลำดับ
หน้าคำอธิบายนี้เป็นคู่มือบอกวิธี ซึ่งบอกรายละเอียดกระบวนการหรือกระบวนวิธีของบางส่วนของบรรทัดฐานและวัตรของวิกิพีเดีย ไม่ใช่ส่วนหนึ่งของนโยบายและแนวปฏิบัติของวิกิพีเดีย
|
การใช้ตารางเรียงลำดับได้
[แก้]ตารางจัดเรียงได้ดูได้จากลูกศรในเซลล์หัวตาราง เมื่อคลิกที่ลูกศรดังกล่าวจะทำให้มีการเรียงแถวตารางตามค่าในสดมภ์ที่เลือก โดยเมื่อคลิกครั้งแรกจะเรียงลำดับจากน้อยไปมาก และเมื่อคลิกครั้งถัดไปจะสลับกันระหว่างเรียงจากน้อยไปมากและมากไปน้อย
กระบวนการเรียงลำดับที่จริงนั้นจะเกิดขึ้นบนคอมพิวเตอร์ของคุณโดยใช้จาวาสคริปต์ฝั่งลูกข่าย ด้วยเหตุนี้จึงสามารถใช้ฟังก์ชันดังกล่าวเฉพาะเมื่อคุณเปิดใช้งานจาวาสคริปต์ในเว็บเบราว์เซอร์ของคุณ กระบวนการเรียงลำดับนี้ยังขึ้นอยู่กับคอมพิวเตอร์ของคุณและปริมาณข้อมูล การเรียงลำดับตารางขนาดใหญ่มากบนคอมพิวเตอร์ช้าอาจกินเวลานานมาก
ตัวอย่าง
[แก้]นี่เป็นตัวอย่างของตาราง เรียงลำดับได้ ขนาดเล็ก
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 ไม่ถูกต้องจะทำให้การเรียงลำดับเสีย และทำให้แถวและสดมภ์ผสมปนเปกัน
name | popularity | data | more data | year |
---|---|---|---|---|
cats | popular pet | 273 | 53 | 2013 |
dogs | 65 | 8,492 | 2014 | |
mice | 1,649 | 548 |
เครื่องมือแก้ไขและ rowspan ตารางออนไลน์
[แก้]มีตัวแก้ไขตารางวิกิออนไลน์อย่างง่ายที่นี่
โปรแกรมนี้ทำให้การแก้ไขข้อความและลิงก์ในเซลล์แต่ละเซลล์ ง่ายมากเมื่อไม่มี rowspan ในตัวตาราง ดูส่วนที่แล้ว หากไม่มี rowspan จะทำให้การเปลี่ยนแปลงกรอบพื้นเดิมของตารางและย้ายเซลล์ไปมาได้ง่ายขึ้น เมื่อกรอบข้อความวิกิง่ายขึ้น โปรแกรมแก้ไขตารางออนไลน์ก็เรียบง่ายตามไปด้วย เพราะคุณไม่ต้องแก้ไขข้อความวิกิมากเท่ากับตารางซับซ้อนเพื่อแก้ไขตาราง
ตัวเลือกสำหรับการเพิ่มสดมภ์ในจอภาพแคบ
[แก้]หัวเรื่องแนวตั้ง
[แก้]cats | 273 | 53 | 1 |
dogs | 65 | 8,492 | 2 |
mice | 1,649 | 548 | 3 |
แม่แบบนี้ยังใช้งานได้กับหัวเรื่องที่ทอดข้ามหลายแถวหรือสดมภ์ (โดยใช้ rowspan และ colspan) หมายเหตุว่าไม่มีขีดตั้ง | ระหว่าง rowspan=2
และ {{vert header
|
{| 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 |} |
สิ่งที่ปรากฏในเบราว์เซอร์ของคุณ
|
วิธีนี้ใช้ได้กับทุกแถวที่อยู่ท้ายตารางซึ่งอยู่ติดกันและประกอบขึ้นจากเซลล์หัวเรื่องทั้งหมด
ท้ายเรื่องธรรมดา
[แก้]วิธีนี้ใช้ 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 |} |
สิ่งที่ปรากฏในเบราว์เซอร์ของคุณ
|
สามารถตรึงหลายบรรทัดไว้ท้ายตารางได้ ตราบเท่าที่บรรทัดดังกล่าวต่อเนื่องกัน
การสร้างโครงแบบการเรียงลำดับ
[แก้]บังคับให้สดมภ์หนึ่งมีชนิดข้อมูลเฉพาะ
[แก้]สามารถเพิ่มลักษณะประจำ data-sort-type="..."
ในหัวเรื่องของสดมภ์เพื่อให้แน่ใจว่าเซลล์ที่อยู่ข้างใต้ถือเป็นข้อมูลชนิดที่ระบุ
ค่าต่อไปนี้ (ไม่ไวต่ออักษรใหญ่เล็ก) สมเหตุสมผลสำหรับ data-sort-type
:
text
number
currency
url
สำหรับที่อยู่เว็บไซต์IPAddress
สำหรับเลขที่อยู่ไอพีdate
สำหรับรูปแบบวันที่มาตรฐานเฉพาะภาษาisoDate
สำหรับวันที่ในรูปแบบ ISO YYYY-MM-DD ดู: วันที่ ISOusLongDate
สำหรับวันที่ในรูปแบบสหรัฐ (เดือนมาก่อนวันที่)time
ตัวอย่างเช่น
ข้อความวิกิ | ไม่ใช้ data-sort-type
|
ใช้ data-sort-type=text
| ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{| class="wikitable sortable"
|-
! data-sort-type=text | Album
|-
... etc ...
|}
|
|
|
หากไม่มี 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 {|} ~ é— (ดูด้านล่าง ช่องว่างมาก่อนอักขระอื่น รหัสไม่แบ่งบรรทัด
นับเป็นช่องว่าง ช่องว่างสามัญติดกันสองช่องนับเป็นหนึ่ง สำหรับช่องว่างหลายช่องสามารถใช้
หรือสลับ
กับช่องว่างสามัญ)
หากมีชนิดที่เป็นไปได้ตรงมากกว่าหนึ่งชนิด จะเลือกใช้ชนิดแรกในอันดับข้างต้น ตัวอย่างเช่น "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 |} |
จะได้
|
(ทำให้เรียงลำดับตามนามสกุล ไม่ใช่ชื่อ)
วิธีนี้มีประโยชน์ เช่น เมื่อเรียงลำดับยศทหารตามลำดับอาวุโส
มาร์กอัพวิกิ
{|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=""WORD"
data-sort-value=""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 |} |
|
หากคุณมีแถวที่มี 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. |} |
|
ปัญหาการเรียงลำดับตัวเลข
[แก้]
|
|
ข้อความหยุดการเรียงลำดับเชิงตัวเลขโดยปริยายหากข้อความอยู่ก่อนจำนวน ข้อความตามหลังจำนวนบางทีหยุดการเรียงลำดับเชิงตัวเลขตั้งต้น ดูสารสนเทศเพิ่มเติมด้านล่าง
อ้างอิง <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
(ดูส่วนที่เกี่ยวข้องด้านล่าง)
|
|
|
|
|
|
|
|
|
วันที่ เดือนและปี
[แก้]การเรียงลำดับทำงานอย่างถูกต้องในตารางทั้งหมดด้านล่าง ถ้าใส่ปีก่อน ค.ศ. 100 (เช่น ค.ศ. 99) จะหยุดการเรียงลำดับ หากเลขสำหรับวันที่หายไป การเรียงลำดับก็หยุดเช่นกัน
|
|
|
|
|
|
|
|
ก่อนปี ค.ศ. 100 (รูปแบบวันที่ทุกแบบ)
[แก้]สามารถเรียงลำดับได้ผ่าน data-sort-value
ซ่อนโดยใช้วันที่ไอเอสโอ ร่วมกับ data-sort-type=isoDate
หมายเหตุ: ข้อความวิกิเรียงลำดับเหมือนกันสำหรับ 2 ตารางด้านล่าง สามารถแสดงรูปแบบวันที่ใดต่อผู้อ่านก็ได้
|
{| |- 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
เช่นเดียวกับตารางด้านบน แต่มีการใช้รูปแบบวันที่หลายแบบสำหรับแสดงวันที่ต่อผู้อ่าน
|
{| 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 (ก่อนปี ค.ศ.) ได้เช่นกัน ทดสอบการใส่ข้อความอื่นก่อนและหลังวันที่ดังกล่าวได้
|
|
|
|
ม่แบบ Dts วันที่และเดือน รูปแบบวันที่อื่นอีกมากมาย
[แก้]ตารางตัวอย่างเหล่านี้ใช้แม่แบบ {{Dts}} ทั้งหมดเรียงลำดับอย่างถูกต้อง ดูข้อความวิกิ ("แก้ไข") ข้อความวิกิสำหรับหน่วยแรกในตารางแต่ละตารางแสดงในส่วนหัวตาราง
หมายเหตุ: ไม่มีสดมภ์ตารางใดที่ใช้ตัวดัดแปร data-sort-type=
บางทีการใช้ data-sort-type=
จะหยุดการเรียงลำดับ
แม่แบบ {{Dts}} กับรูปแบบวันที่ได้หลายรูปแบบ ดู แม่แบบ:Dts สำหรับตัวเลือกอื่น
|
|
|
ตัวอย่างการตรวจจับชนิดข้อมูลอัตโนมัติ
[แก้]สคริปต์เห็นสิ่งที่บรรจุในเซลล์ในแถวข้อมูล 5 แถวแรก ภาวะการเรียงลำดับจะกลายเป็นตัวเลข หากเซลล์แรก ๆ มีเฉพาะตัวเลข (เครื่องหมายจุลภาคและจุดที่ใช้ในการจัดรูปแบบตัวเลขถือเป็นตัวเลขด้วย) ลำดับการเรียงลำดับจะทำงานอย่างถูกต้องแม้เซลล์อื่นมีข้อความอยู่หลังตัวเลข (เช่น "80 โดยประมาณ") เซลล์ว่างถือเป็น "ศูนย์" เมื่อเรียงลำดับตัวเลข
|
|
|
|
|
|
|
|
ตัวอย่างที่มี "a" ทำให้ได้การเรียงลำดับตามอักษร ตัวอย่างที่มี "e" ก็เช่นกัน ข้อมูลนั้นไม่รับรู้เป็นจำนวนในรูปแบบวิทยาศาสตร์
|
|
|
|
ตัวอย่างแรกแสดงให้เห็นว่าข้อความจัดตำแหน่งที่ศูนย์ และไม่อนุญาตให้ใช้ 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 |