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

แชร์ผ่าน


แบบจําลองการประเมินผล

แบบจําลองการประเมินผลของภาษาสูตร Power Query M จะถูกจัดรูปแบบหลังจากที่พบแบบจําลองการประเมินผลได้ทั่วไปในสเปรดชีต ซึ่งสามารถกําหนดลําดับการคํานวณตามการขึ้นต่อกันระหว่างสูตรต่าง ๆ ในเซลล์

ถ้าคุณมีสูตรที่เขียนแล้วในสเปรดชีต เช่น Excel คุณอาจรู้จักสูตรทางด้านซ้ายจะส่งผลทางด้านขวาเมื่อคํานวณแล้ว:

Evaluation Model 1

Evaluation Model 2

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

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

[
    A1 = A2 * 2,
    A2 = A3 + 1,
    A3 = 1
]

นิพจน์ข้างต้นจะประเมินไปยังระเบียนต่อไปนี้:

[
    A1 = 4,
    A2 = 2,
    A3 = 1
]

ระเบียนสามารถมีอยู่ภายใน หรือ ซ้อนกันภายในระเบียนอื่นได้ คุณสามารถใช้ตัว ดําเนินการ ค้นหา ([ ]) เพื่อเข้าถึงเขตข้อมูลของเรกคอร์ดตามชื่อได้ ตัวอย่างเช่น ระเบียนต่อไปนี้มีเขตข้อมูลที่ชื่อว่า ยอดขาย ที่มีระเบียน และเขตข้อมูลที่ชื่อ Total ที่เข้าถึงเขตข้อมูล FirstHalf และ SecondHalf ของระเบียนยอดขาย:

[
    Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
    Total = Sales[FirstHalf] + Sales[SecondHalf]
]

นิพจน์ข้างต้นจะประเมินไปยังระเบียนต่อไปนี้:

[
    Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
    Total = 2100
]

คุณใช้ตัว ดําเนินการ ดัชนีตําแหน่ง ({ }) เพื่อเข้าถึงหน่วยข้อมูลในรายการตามดัชนีตัวเลข ค่าภายในรายการจะถูกอ้างอิงโดยใช้ดัชนีที่ยึดตามศูนย์จากจุดเริ่มต้นของรายการ ตัวอย่างเช่น มีการใช้ดัชนี 0 และ 1 เพื่ออ้างอิงหน่วยข้อมูลที่หนึ่งและสองในรายการด้านล่าง:

[
    Sales =
        {
            [
                Year = 2007,
                FirstHalf = 1000,
                SecondHalf = 1100,
                Total = FirstHalf + SecondHalf // equals 2100
            ],
            [
                Year = 2008,
                FirstHalf = 1200,
                SecondHalf = 1300,
                Total = FirstHalf + SecondHalf // equals 2500
            ]
        },
    #"Total Sales" = Sales{0}[Total] + Sales{1}[Total] // equals 4600
]

การประเมินผลขี้เกียจและกระตือรือร้น

นิพจน์สมาชิกของ รายการ, เรกคอร์ด และ ตาราง รวมถึงนิพจน์ let (ไปยังนิพจน์ ค่า และนิพจน์ let) จะถูกประเมินโดยใช้การประเมินผลที่ขี้เกียจ นั่นคือพวกเขาจะถูกประเมินเมื่อจําเป็น นิพจน์อื่น ๆ ทั้งหมดจะถูกประเมินโดยใช้ การประเมินผลกระตือรือร้น นั่นคือพวกเขาจะถูกประเมินทันทีเมื่อพบในระหว่างกระบวนการประเมินผล วิธีการที่ดีอีกวิธีหนึ่งคือ จดจําว่าการประเมินรายการหรือนิพจน์เรกคอร์ดจะแสดงรายการหรือค่าเรกคอร์ดที่ทราบว่าจําเป็นต้องคํานวณเขตข้อมูลเรกคอร์ดหรือหน่วยข้อมูลของรายการอย่างไร เมื่อได้รับคําขอ (โดยตัวดําเนินการค้นหาหรือดัชนี)