อ่านในภาษาอังกฤษ

แชร์ผ่าน


INDEX

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

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

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

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

พารามิเตอร์

เทอม นิยาม
position ตําแหน่งสัมบูรณ์ (แบบ 1) จากที่ได้รับข้อมูล:
- position เป็นบวก: 1 คือแถว first 2 คือแถว second ฯลฯ
- position เป็นลบ: -1 คือแถว last -2 เป็นแถว secondlast ฯลฯ
เมื่อ position อยู่นอกขอบเขต or ศูนย์ orBLANK(), INDEX จะส่งกลับตารางว่าง ซึ่งอาจเป็นนิพจน์ DAX ใด ๆ ที่แสดง valueสเกลา
relation (ไม่บังคับ) นิพจน์ตารางที่ผลลัพธ์ถูกส่งกลับ
If ระบุแล้ว คอลัมน์ all ใน partitionBy ต้องมาจากคอลัมน์ or ตาราง related
If เว้นไว้: ต้องมีการระบุ
- orderBy อย่างชัดเจน
- นิพจน์ AllorderByandpartitionBy ต้องมีชื่อคอลัมน์ที่มีคุณสมบัติครบถ้วน and มาจากตารางเดียว
- ค่าเริ่มต้นคือ ALLSELECTED() ของคอลัมน์ all ใน orderByandpartitionBy
axis (ไม่บังคับ) แกนในรูปร่างวิชวล พร้อมใช้งานในการคํานวณวิชวลเท่านั้น and จะแทนที่ relation
orderBy (ไม่บังคับ) คําสั่ง ORDERBY() ที่มีนิพจน์ที่ define วิธีการเรียงลําดับแต่ละพาร์ติชัน
If เว้นไว้: ต้องมีการระบุ
- relation อย่างชัดเจน
- ค่าเริ่มต้นเพื่อเรียงลําดับตามทุกคอลัมน์ใน relation ที่ถูกระบุ not แล้วใน partitionBy
blanks (ไม่บังคับ) ค่าจาระเหนที่กําหนดวิธีการจัดการ blankvalues เมื่อมีการเรียงลําดับ
พารามิเตอร์นี้สงวนไว้สําหรับการใช้งานในอนาคต
ในปัจจุบัน value ที่ได้รับการสนับสนุนเท่านั้นคือ DEFAULTที่ blankvalues จะมีการเรียงลําดับลักษณะการทํางานสําหรับ values ตัวเลขระหว่างศูนย์ andvaluesเชิงลบ ลักษณะการทํางานสําหรับสตริงจะถูกเรียงลําดับ blankvalues ก่อน all สตริง รวมถึงสตริงที่ว่างเปล่า
partitionBy (ไม่บังคับ) คําสั่งย่อย PARTITIONBY() ที่มีคอลัมน์ที่ define วิธีการแบ่งพาร์ติชัน relation
If เว้นไว้ relation จะถือว่าเป็นพาร์ติชันเดียว
matchBy (ไม่บังคับ) ส่วนคําสั่ง MATCHBY() ที่มีคอลัมน์ที่ define วิธีการจับคู่ข้อมูล and ระบุแถวปัจจุบัน
reset (ไม่บังคับ) พร้อมใช้งานในการคํานวณวิชวลเท่านั้น ระบุ if รีเซ็ตการคํานวณ and ระดับใดของลําดับชั้นคอลัมน์ของรูปร่างวิชวล values ที่ยอมรับได้คือ: NONE, LOWESTPARENT, HIGHESTPARENTor จํานวนเต็ม ลักษณะการทํางานขึ้นอยู่กับ signจํานวนเต็ม :
- If ศูนย์ or เว้นไว้ การคํานวณจะ not รีเซ็ต เทียบเท่ากับ NONE
- If ค่าบวก จํานวนเต็มจะระบุคอลัมน์โดยเริ่มต้นจากระดับสูงสุด ที่เป็นอิสระจากเกรน HIGHESTPARENT เทียบเท่ากับ 1
- If ค่าลบ จํานวนเต็มจะระบุคอลัมน์โดยเริ่มต้นจากต่ําสุด เมื่อเทียบกับเกรนปัจจุบัน LOWESTPARENT เทียบเท่ากับ -1

value ผลลัพธ์

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

หมาย เหตุ

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

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

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

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

จะส่งกลับตารางว่าง if:

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

If INDEX ถูกใช้ภายในคอลัมน์จากการคํานวณที่กําหนดไว้ในตารางเดียวกันกับ relationandorderBy ถูกเว้นไว้ error จะถูกส่งกลับ

reset สามารถใช้ในการคํานวณวิชวลเท่านั้น and ไม่สามารถใช้ร่วมกับ orderByorpartitionByได้ If 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))

ปรับปรุงตารางเพื่อให้ containsสําหรับแต่ละ month:
- ยอดขายรวม;
- ความแตกต่างกับ firstmonth ของ yearที่เกี่ยวข้อง
- and ผลต่างกับ firstmonth ของ quarterที่เกี่ยวข้อง

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

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

OFFSET ORDERBY PARTITIONBY WINDOW RANK ROWNUMBER