Thep Excel

List.ConformToPageReader – แปลง List ของ Record เป็น Table สำหรับ Page Reader

List.ConformToPageReader ใช้ภายในเพื่อแปลง List ของ Record เป็น Table ตาม Schema ที่กำหนด เหมาะสำหรับโครงสร้างข้อมูลที่ Page Reader ต้องการ

=List.ConformToPageReader(list as list, optional options as nullable record) as table

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
5/10

Syntax & Arguments

=List.ConformToPageReader(list as list, optional options as nullable record) as table

Argument Type Required Default Description
list list Yes List ที่ต้องแปลงเป็น Table สำหรับ Page Reader ซึ่งมักจะเป็น List ของ Record
options nullable record Optional null Record ที่มีตัวเลือก (options) สำหรับการกำหนดค่า โดยทั่วไปมักจะเป็น null

How it works

การใช้ภายในโดย Power BI

ฟังก์ชันนี้ถูกใช้โดย Power BI เองเมื่อมีการแสดงข้อมูลจาก List ของ Record ในรายงานที่ต้องการโครงสร้างแบบ Table ที่ชัดเจน

การเตรียมข้อมูลสำหรับ Output เฉพาะ

หากมีการพัฒนา Custom Connector หรือส่วนเสริมที่ต้องการส่งข้อมูลในรูปแบบเฉพาะที่ Page Reader ต้องการ (ซึ่งไม่แนะนำให้ใช้ทั่วไป)

Examples

แปลง List ของ Record เป็น Table ด้วย options เป็น null
let SalesData = { [Product = "A", Amount = 1000], [Product = "B", Amount = 2000] }, Result = List.ConformToPageReader(SalesData, null) in Result
แปลง SalesData (List ของ Record) เป็น Table โดยส่ง null เป็นพารามิเตอร์ options ซึ่งเป็นวิธีใช้งานแบบทั่วไป
Power Query Formula:

let
    SalesData = 
    {
        [Product = "A", Amount = 1000],
        [Product = "B", Amount = 2000]
    },
    Result = List.ConformToPageReader(SalesData, null)
in
    Result

Result:

| Product | Amount |
|---------|--------|
| A | 1000 |
| B | 2000 |

ใช้ในบริบทของ generated code จาก Power BI
let Source = SomeFunction(...), ConvertedTable = List.ConformToPageReader(Source, null) in ConvertedTable
ในความเป็นจริง คุณมักจะเห็นฟังก์ชันนี้ในโค้ดที่ Power BI auto-generate แทนที่จะเขียนด้วยตัวเองครับ
Power Query Formula:

let
    Source = SomeFunction(...),
    ConvertedTable = List.ConformToPageReader(Source, null)
in
    ConvertedTable

Result:

Table ที่ได้จากการแปลง Source

เปรียบเทียบกับ Table.FromRecords (วิธีที่ดีกว่า)
let CustomerData = { [Name = "John", Age = 30, City = "Bangkok"], [Name = "Jane", Age = 28, City = "Chiang Mai"] }, ConformMethod = List.ConformToPageReader(Cus…
ถึงแม้ว่า List.ConformToPageReader จะทำงานได้เหมือนกัน แต่ Table.FromRecords เข้าใจง่ายกว่า และถูก document อย่างเต็มที่ ดังนั้นจึงเป็นตัวเลือกที่ดีกว่าสำหรับโค้ด M ที่เขียนด้วยตัวเอง
Power Query Formula:

let
    CustomerData = 
    {
        [Name = "John", Age = 30, City = "Bangkok"],
        [Name = "Jane", Age = 28, City = "Chiang Mai"]
    },
    ConformMethod = List.ConformToPageReader(CustomerData, null),
    FromRecordsMethod = Table.FromRecords(CustomerData)
in
    FromRecordsMethod

Result:

| Name | Age | City |
|------|-----|----------|
| John | 30 | Bangkok |
| Jane | 28 | Chiang Mai |

FAQs

ควรใช้ List.ConformToPageReader ในโค้ด M ของเราโดยตรงหรือไม่?

ผมบอกคุณตรงๆ เลยว่า ไม่ควรครับ เพราะมันเป็นฟังก์ชันสำหรับใช้ภายใน ถ้ามันเกิด error หรือทำงานไม่ถูกต้อง ผมก็จะไม่มีวิธีช่วยอะไรเพราะ Microsoft ไม่ได้ document มันเลย

ถ้าผมเห็นฟังก์ชันนี้ใน generated code ควรลบออกได้หรือไม่?

อย่าลบนะครับ ปล่อยไว้อย่างนั้นดีกว่า เพราะมันถูก auto-generate เพื่ออ่าน Page Reader ข้อมูลที่ถูกต้อง ถ้าคุณลบมันออก อาจจะเกิด error ได้

อะไรคือทางเลือกที่ดีกว่า?

ผมแนะนำให้ใช้ Table.FromRecords หรือ Table.FromList ซึ่งสามารถ document และสนับสนุนได้อย่างเต็มที่ ถ้าคุณเขียนโค้ด M ด้วยตัวเองนะครับ

Resources & Related

Additional Notes

List.ConformToPageReader เป็นฟังก์ชันสำหรับแปลง List ของ Record เป็น Table โดยแต่ละ Record จะกลายเป็นแถวในตารางผลลัพธ์ อย่างไรก็ตาม ฟังก์ชันนี้ถูกออกแบบมาเพื่อใช้ภายในเท่านั้น (internal use) ซึ่งแปลว่าคุณไม่ควรเรียกใช้มันในโค้ด M ทั่วไป

ที่เจ๋งคือ ผม… ไปเจอฟังก์ชันนี้ได้ยากมากครับ เพราะมันไม่ได้เป็นฟังก์ชันแบบ Public API ส่วนใหญ่จะเห็นมันใน generated code จาก Power BI เท่านั้น

ส่วนตัวผม แนะนำให้ใช้ Table.FromRecords หรือ Table.FromList แทน เพราะมันมี documentation ที่ชัดเจน ทำให้ code ของคุณอ่านและ maintain ได้ง่ายกว่า 😎

Leave a Reply

Your email address will not be published. Required fields are marked *