แชร์ผ่าน


INDEX

นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณหน่วยวัดการคํานวณวิชวล

แสดงแถวที่ตําแหน่งสัมบูรณ์ที่ระบุโดยพารามิเตอร์ตําแหน่งภายในพาร์ติชันที่ระบุ โดยเรียงลําดับตามลําดับที่ระบุ ถ้าไม่สามารถหาพาร์ติชันปัจจุบันให้กับพาร์ติชันเดียวได้ อาจส่งกลับหลายแถว

วากยสัมพันธ์

INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

พารามิเตอร์

เทอม นิยาม
position ตําแหน่งสัมบูรณ์ (แบบ 1) จากที่ได้รับข้อมูล:
- position เป็นบวก: 1 คือแถวแรก 2 คือแถวที่สอง ฯลฯ
- position เป็นลบ: -1 คือแถวสุดท้าย -2 เป็นแถวสุดท้ายแถวที่สอง ฯลฯ
เมื่อ position อยู่นอกขอบเขต หรือศูนย์ หรือ BLANK(), INDEX จะส่งกลับตารางว่าง ซึ่งอาจเป็นนิพจน์ DAX ใด ๆ ที่แสดงค่าสเกลา
relation (ไม่บังคับ) นิพจน์ตารางที่ผลลัพธ์ถูกส่งกลับ
คอลัมน์ทั้งหมดใน partitionBy ต้องมาจากคอลัมน์นั้นหรือตารางที่เกี่ยวข้อง
ถ้าเว้นไว้: คุณต้องระบุ
- orderBy อย่างชัดเจน
- นิพจน์ orderBy และ partitionBy ทั้งหมดต้องเป็นชื่อคอลัมน์ที่มีคุณสมบัติครบถ้วนและมาจากตารางเดียว
- ค่าเริ่มต้นคือ ALLSELECTED() ของคอลัมน์ทั้งหมดใน orderBy และ partitionBy
axis (ไม่บังคับ) แกนในรูปร่างวิชวล พร้อมใช้งานในการคํานวณวิชวลเท่านั้น และแทนที่ relation
orderBy (ไม่บังคับ) คําสั่ง ORDERBY() ที่มีนิพจน์ที่กําหนดวิธีการเรียงลําดับแต่ละพาร์ติชัน
ถ้าเว้นไว้: ต้องมีการระบุ
- relation อย่างชัดเจน
- ค่าเริ่มต้นการเรียงลําดับตามทุกคอลัมน์ใน relation ซึ่งยังไม่ได้ระบุใน partitionBy
blanks (ไม่บังคับ) ค่าจาระเหยที่กําหนดวิธีการจัดการค่าว่างเมื่อเรียงลําดับ relation หรือ axis
ค่าที่สนับสนุนคือ:
  • DEFAULT (ค่าเริ่มต้น) ซึ่งลักษณะการทํางานสําหรับค่าตัวเลขจะเป็นค่าว่างที่ถูกเรียงลําดับระหว่างค่าศูนย์และค่าลบ ลักษณะการทํางานสําหรับสตริงเป็นค่าว่างจะถูกเรียงลําดับก่อนสตริงทั้งหมด รวมถึงสตริงที่ว่างเปล่า
  • FIRSTช่องว่างจะถูกเรียงลําดับในตอนแรกเสมอ โดยไม่คํานึงถึงการเรียงลําดับจากน้อยไปหามากหรือจากมากไปหาน้อย
  • LASTช่องว่างจะถูกเรียงลําดับที่ส่วนท้ายเสมอ โดยไม่คํานึงถึงการเรียงลําดับจากน้อยไปหามากหรือจากมากไปหาน้อย
หมายเหตุ เมื่อพารามิเตอร์ และช่องว่างในฟังก์ชัน () บนนิพจน์แต่ละนิพจน์มีการระบุไว้ นิพจน์ orderBy แต่ละรายการจะมีความสําคัญสําหรับนิพจน์ orderBy ที่เกี่ยวข้องและนิพจน์ orderBy โดยไม่ต้องระบุ จะเป็นไปตามพารามิเตอร์ ในฟังก์ชันหลัก
partitionBy (ไม่บังคับ) คําสั่ง () ที่มีคอลัมน์ที่กําหนดวิธีการแบ่งพาร์ติชัน ถ้าเว้นไว้ relation จะถือว่าเป็นพาร์ติชันเดียว
matchBy (ไม่บังคับ) ส่วนคําสั่ง () ที่มีคอลัมน์ที่กําหนดวิธีการจับคู่ข้อมูลและระบุแถวปัจจุบัน
reset (ไม่บังคับ) พร้อมใช้งานในการคํานวณวิชวลเท่านั้น ระบุว่าการคํานวณรีเซ็ตหรือไม่ และระดับใดของลําดับชั้นคอลัมน์ของรูปร่างวิชวล ค่าที่ยอมรับคือ: การอ้างอิงเขตข้อมูลไปยังคอลัมน์ในรูปร่างวิชวลปัจจุบัน NONE (ค่าเริ่มต้น) LOWESTPARENTHIGHESTPARENTหรือจํานวนเต็ม ลักษณะการทํางานขึ้นอยู่กับเครื่องหมายจํานวนเต็ม:
- ถ้าศูนย์หรือเว้นไว้ การคํานวณจะไม่รีเซ็ต เทียบเท่ากับ NONE
- ถ้าเป็นค่าบวก จํานวนเต็มจะระบุคอลัมน์ที่เริ่มต้นจากสูงสุด โดยไม่ขึ้นอยู่กับเกรน HIGHESTPARENT เทียบเท่ากับ 1
- ถ้าเป็นค่าลบ จํานวนเต็มจะระบุคอลัมน์ที่เริ่มต้นจากต่ําสุด ซึ่งสัมพันธ์กับเกรนปัจจุบัน LOWESTPARENT เทียบเท่ากับ -1

ค่าผลลัพธ์

แถวที่ตําแหน่งสัมบูรณ์

หมาย เหตุ

แต่ละ partitionBy และคอลัมน์ matchBy ต้องมีค่าภายนอกที่สอดคล้องกันเพื่อช่วยกําหนด "พาร์ติชันปัจจุบัน" ที่จะทํางาน โดยมีลักษณะการทํางานต่อไปนี้:

  • ถ้ามีหนึ่งคอลัมน์ภายนอกที่สอดคล้องกัน ค่านั้นจะถูกใช้
  • ถ้าไม่มีคอลัมน์ภายนอกที่สอดคล้องกัน:
    • INDEX จะกําหนด partitionBy และคอลัมน์ matchBy ทั้งหมดที่ไม่มีคอลัมน์ภายนอกที่สอดคล้องกัน
    • สําหรับการรวมค่าที่มีอยู่สําหรับคอลัมน์เหล่านี้ในบริบทหลักของ INDEXINDEX ได้รับการประเมินและแถวจะถูกส่งกลับ
    • ผลลัพธ์สุดท้าย INDEXคือการรวมแถวเหล่านี้
  • ถ้ามีคอลัมน์ภายนอกที่สอดคล้องกันมากกว่าหนึ่งคอลัมน์ ข้อผิดพลาดจะถูกส่งกลับ

ถ้า matchBy ปรากฏ INDEX จะพยายามใช้คอลัมน์ matchBy และ partitionBy เพื่อระบุแถว ถ้าไม่มี matchBy และคอลัมน์ที่ระบุภายใน orderBy และ partitionBy ไม่สามารถระบุเฉพาะทุกแถวใน relation:

  • INDEX จะพยายามค้นหาจํานวนคอลัมน์เพิ่มเติมน้อยที่สุดที่จําเป็นในการระบุเฉพาะทุกแถว
  • ถ้าสามารถพบได้คอลัมน์ดังกล่าว INDEX จะผนวกคอลัมน์ใหม่เหล่านี้เข้ากับ orderByโดยอัตโนมัติ และแต่ละพาร์ติชันจะถูกเรียงลําดับโดยใช้ชุดคอลัมน์ OrderBy ใหม่นี้
  • ถ้าไม่พบคอลัมน์ดังกล่าว ข้อผิดพลาดจะถูกส่งกลับ

ตารางเปล่าจะถูกส่งกลับถ้า:

  • ไม่มีค่าภายนอกที่สอดคล้องกันของคอลัมน์ PartitionBy อยู่ภายใน relation
  • ค่า position อ้างอิงถึงตําแหน่งที่ไม่มีอยู่ภายในพาร์ติชัน

ถ้า INDEX ถูกใช้ภายในคอลัมน์จากการคํานวณที่กําหนดไว้ในตารางเดียวกันกับ relation และ orderBy จะถูกละเว้น ข้อผิดพลาดจะถูกส่งกลับ

reset สามารถใช้ในการคํานวณวิชวลเท่านั้น และไม่สามารถใช้ร่วมกับ orderBy หรือ partitionByได้ ถ้ามี reset อยู่ สามารถระบุ axis ได้ แต่ไม่สามารถระบุ relation ได้

ตัวอย่างที่ 1 - คอลัมน์จากการคํานวณ

คิวรี DAX ต่อไปนี้:

EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))

แสดงตารางต่อไปนี้:

DimDate[CalendarYear]
2005

ตัวอย่างที่ 2 - คอลัมน์จากการคํานวณ

คิวรี DAX ต่อไปนี้:

EVALUATE
SUMMARIZECOLUMNS (
    FactInternetSales[ProductKey],
    DimDate[MonthNumberOfYear],
    FILTER (
            VALUES(FactInternetSales[ProductKey]),
            [ProductKey] < 222
    ),
    "CurrentSales", SUM(FactInternetSales[SalesAmount]),
    "LastMonthSales",
    CALCULATE (
        SUM(FactInternetSales[SalesAmount]),
        INDEX(-1, ORDERBY(DimDate[MonthNumberOfYear]))
    )
)
ORDER BY [ProductKey], [MonthNumberOfYear]

แสดงตารางต่อไปนี้:

FactInternetSales[ProductKey] DimDate[MonthNumberOfYear] [CurrentSales] [LastMonthSales]
214 1 5423.45 8047.7
214 2 4968.58 8047.7
214 3 5598.4 8047.7
214 4 5073.55 8047.7
214 5 5248.5 8047.7
214 6 7487.86 8047.7
214 7 7382.89 8047.7
214 8 6543.13 8047.7
214 9 6788.06 8047.7
214 10 6858.04 8047.7
214 11 8607.54 8047.7
214 12 8047.7 8047.7
217 1 5353.47 7767.78
217 2 4268.78 7767.78
217 3 5773.35 7767.78
217 4 5738.36 7767.78
217 5 6158.24 7767.78
217 6 6998 7767.78
217 7 5563.41 7767.78
217 8 5913.31 7767.78
217 9 5913.31 7767.78
217 10 6823.05 7767.78
217 11 6683.09 7767.78
217 12 7767.78 7767.78

ตัวอย่างที่ 3 - การคํานวณวิชวล

การคํานวณวิชวลต่อไปนี้ DAX คิวรี:

SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))

SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))

ปรับปรุงตารางเพื่อให้มี สําหรับแต่ละเดือน:
- ยอดขายรวม
- ความแตกต่างกับเดือนแรกของปีที่เกี่ยวข้อง
- และความแตกต่างกับเดือนแรกของไตรมาสที่เกี่ยวข้อง

สกรีนช็อตด้านล่างแสดงเมทริกซ์วิชวลและนิพจน์การคํานวณวิชวลแรก:

การคํานวณวิชวล

OFFSET ORDERBY PARTITIONBY WINDOW RANK ROWNUMBER