ดึงแถวจากตารางโดยข้ามจำนวนแถวที่กำหนดก่อน แล้วคืนแถวถัดไปตามการเรียงลำดับที่ระบุ (มักเร็วกว่า TOPN สำหรับงานเลื่อนหน้า)
=TOPNSKIP(<Rows>, <Skip>, <Table> [, <OrderExpr> [, [<Order>] [, <OrderExpr> [, [<Order>]]]])
=TOPNSKIP(<Rows>, <Skip>, <Table> [, <OrderExpr> [, [<Order>] [, <OrderExpr> [, [<Order>]]]])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Rows | number | Yes | จำนวนแถวที่ต้องการคืน | |
| Skip | number | Yes | จำนวนแถวที่ต้องการข้ามก่อนเริ่มคืนผลลัพธ์ | |
| Table | table | Yes | ตารางต้นทางที่ต้องการเลื่อนหน้า | |
| OrderExpr | expression | Optional | ไม่ระบุ | นิพจน์สำหรับจัดลำดับก่อนทำการ skip/คืนแถว (ใส่ได้หลายตัว) |
| Order | keyword | Optional | DESC | ทิศทางการเรียง เช่น DESC หรือ ASC (ค่าเริ่มต้นโดยทั่วไปคือ DESC) |
ต้องการแสดงผลทีละหน้า เช่น หน้าแรก 20 แถว, หน้าที่สอง 20 แถวถัดไป
เลือกช่วงอันดับ 1-20, 21-40, … ด้วยการกำหนด Skip
อันดับ 21-40 (ตาราง) = TOPNSKIP( 20, 20, VALUES('Customer'[CustomerName]), [Sales Amount], DESC )=อันดับ 21-40 (ตาราง) =
TOPNSKIP(
20,
20,
VALUES('Customer'[CustomerName]),
[Sales Amount],
DESC
)
ได้ตาราง 20 แถวถัดไปหลังจากข้าม 20 แถวแรก
ช่วงอันดับ (เสถียรขึ้น) = TOPNSKIP( 20, 20, VALUES('Customer'[CustomerName]), [Sales Amount], DESC, 'Customer'[CustomerName], ASC )=ช่วงอันดับ (เสถียรขึ้น) =
TOPNSKIP(
20,
20,
VALUES('Customer'[CustomerName]),
[Sales Amount], DESC,
'Customer'[CustomerName], ASC
)
ลดโอกาสที่ลำดับจะเปลี่ยนเมื่อยอดขายเท่ากัน
ยอดขายช่วงอันดับ 21-40 (แนวคิด) = CALCULATE( [Sales Amount], KEEPFILTERS( TOPNSKIP(20, 20, VALUES('Customer'[CustomerName]), [Sales Amount], DESC) ) )=ยอดขายช่วงอันดับ 21-40 (แนวคิด) =
CALCULATE(
[Sales Amount],
KEEPFILTERS(
TOPNSKIP(20, 20, VALUES('Customer'[CustomerName]), [Sales Amount], DESC)
)
)
ได้ยอดขายรวมของกลุ่มที่อยู่ในช่วงอันดับที่ต้องการ
TOPNSKIP เพิ่มพารามิเตอร์ Skip เพื่อเลื่อนหน้า และมักทำงานได้เร็วกว่าในงาน paging ขณะที่ TOPN ยืดหยุ่นกว่า
เพราะการ skip ต้องอาศัยลำดับที่แน่นอน ถ้าไม่กำหนดการเรียงลำดับอย่างเหมาะสม ผลลัพธ์อาจไม่เสถียรหรือไม่ตรงกับที่คาด
TOPNSKIP คืนจำนวนแถวที่ต้องการจากตาราง โดย “ข้าม (skip)” จำนวนแถวที่กำหนดก่อน แล้วจึงคืนแถวถัดไปตามการเรียงลำดับที่ระบุ แนวคิดเหมือนการทำ pagination (หน้า 1, หน้า 2, …) โดยทั่วไปยืดหยุ่นน้อยกว่า TOPN แต่ทำงานได้เร็วกว่าในหลายกรณี