Thep Excel

SharePoint.Tablesดึงข้อมูลจาก SharePoint Lists

SharePoint.Tables เป็นฟังก์ชันสำหรับดึงข้อมูลทั้งหมดจาก SharePoint List มา Power Query โดยคืนค่าตารางที่มีแถวสำหรับแต่ละรายการใน List พร้อมกับจัดการการเชื่อมต่อและการรับรองตัวตนอัตโนมัติ

fx
= SharePoint.Tables(url, [options]) as table

ความนิยม6/10
ความยาก4/10
ประโยชน์6/10

อัปเดต 12 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
url Text URL ของ SharePoint List ที่ต้องการดึงข้อมูล เช่น https://contoso.sharepoint.com/sites/mysite/lists/employees หรือแม้กระทั่ง URL ของ List view
[options]ไม่บังคับ Record null ระเบียนตัวเลือกเพิ่มเติมเพื่อปรับแต่งการดึงข้อมูล ตัวเลือกที่สำคัญ ได้แก่ ApiVersion (14, 15 หรือ “Auto”), Implementation (“2.0” หรือ null), ViewMode (“All” หรือ “Default”), DisableAppendNoteColumns (true/false)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

SharePoint.Tables คือ connector ตรงตัวสำหรับดึงข้อมูล SharePoint List มาเป็นตารางใน Power Query โดยจัดการการเชื่อมต่อและการ authenticate ให้อัตโนมัติ ไม่ต้องเขียน HTTP request เองตั้งแต่ต้นหัว

ที่เจ๋งคือ flexibility มันจริงๆ ถ้า List มีข้อมูลมากมายหรือมี note columns ที่ค่อนข้างหนัก ผมสามารถปรับแต่งได้หมดเลย ไป่ว่าจะ auto-detect API version, เลือกเฉพาะคอลัมน์จาก default view, หรือปิด note columns เพื่อเร่งความเร็ว

ส่วนตัวผม ผมชอบใช้ Implementation 2.0 กับ DisableAppendNoteColumns = true เป็น default เพราะ 99% ของ projects ไม่จำเป็นต้อง load note columns ที่เท่าไรแล้ว ประหยัดเวลา refresh ได้มากเลย 😎

Examples

ดึงข้อมูลจาก SharePoint List พื้นฐานlet SharePointUrl = "https://contoso.sharepoint.com/sites/mysite/lists/employees", Data = SharePoint.Tables(SharePointUrl) in Data

เชื่อมต่อกับ SharePoint List ที่ https://contoso.sharepoint.com/sites/mysite/lists/employees และดึงข้อมูลทั้งหมดเป็นตาราง โดยใช้ค่า default ของ options

fx
let
SharePointUrl = "https://contoso.sharepoint.com/sites/mysite/lists/employees",
Data = SharePoint.Tables(SharePointUrl)
in
Data

ผลลัพธ์ตารางที่มีแถวสำหรับแต่ละรายการพนักงาน พร้อมคอลัมน์ทั้งหมดของ List
ใช้ตัวเลือก ApiVersion และ Implementation 2.0let SharePointUrl = "https://contoso.sharepoint.com/sites/mysite/lists/projects", Options = [ApiVersion = "Auto", Implementation = "2.0"], Data = SharePoint.Tab…

ระบุ ApiVersion = "Auto" เพื่อให้ Power Query แสกนและเลือก API version ที่ SharePoint server รองรับ และใช้ Implementation "2.0" เพื่อประสิทธิภาพและเสถียรภาพที่ดีขึ้น

fx
let
SharePointUrl = "https://contoso.sharepoint.com/sites/mysite/lists/projects",
Options = [ApiVersion = "Auto", Implementation = "2.0"],
Data = SharePoint.Tables(SharePointUrl, Options)
in
Data

ผลลัพธ์ตารางข้อมูลโปรเจกต์ โดยใช้ SharePoint API version ที่เหมาะสม (Auto-detect) และ Implementation 2.0 ซึ่งเร็วกว่า
ใช้ ViewMode เพื่อดึงเฉพาะคอลัมน์จาก Default Viewlet SharePointUrl = "https://contoso.sharepoint.com/sites/mysite/lists/tasks", Options = [ApiVersion = "Auto", Implementation = "2.0", ViewMode = "Default"], Da…

ใช้ ViewMode = "Default" เพื่อดึงเฉพาะคอลัมน์ที่ผู้ใช้กำหนดไว้ในการมองหลัก (default view) แล้ว filter เพื่อดึงเฉพาะรายการที่สถานะเป็น Active ซึ่งช่วยลดขนาดของข้อมูล

fx
let
SharePointUrl = "https://contoso.sharepoint.com/sites/mysite/lists/tasks",
Options = [ApiVersion = "Auto", Implementation = "2.0", ViewMode = "Default"],
Data = SharePoint.Tables(SharePointUrl, Options),
Filtered = Table.SelectRows(Data, each [Status] = "Active")
in
Filtered

ผลลัพธ์ตารางงาน (Tasks) ที่มีสถานะ "Active" โดยดึงเฉพาะคอลัมน์ที่แสดงใน default view ของ List
ปิดการโหลด Note Columns เพื่อลดเวลาlet SharePointUrl = "https://contoso.sharepoint.com/sites/mysite/lists/documents", Options = [ApiVersion = "Auto", Implementation = "2.0", DisableAppendNoteColu…

ใช้ DisableAppendNoteColumns = true เมื่อ List มี note column (คอลัมน์ข้อหมายเหตุ) แต่ไม่ต้องการรวมข้อมูลจากคอลัมน์เหล่านั้น ซึ่งลดจำนวน HTTP request และเร่งความเร็ว

fx
let
SharePointUrl = "https://contoso.sharepoint.com/sites/mysite/lists/documents",
Options = [ApiVersion = "Auto", Implementation = "2.0", DisableAppendNoteColumns = true],
Data = SharePoint.Tables(SharePointUrl, Options)
in
Data

ผลลัพธ์ตารางข้อมูลเอกสารโดยไม่รวมการโหลด note columns จากใน endpoint แยก

FAQs

SharePoint.Tables กับ SharePoint.Contents ต่างกันไง?+

ง่ายเลย – Tables ดึงข้อมูลจาก List (แถว-คอลัมน์แบบตาราง) ส่วน Contents ดึงไฟล์และโฟลเดอร์จากภายใน SharePoint Site แบบ folder structure

List ถ้ามีข้อมูลเยอะมากจริงๆ (100K+ rows) จะมีปัญหาเหรอ?+

จะช้าได้แน่นอน เพราะ Power Query ดึงทั้งหมด แนะนำสองแบบ: (1) Filter ด้านใน SharePoint List เอง ให้มันส่งมาแค่ที่ต้องการ หรือ (2) ใช้ ViewMode = "Default" และ DisableAppendNoteColumns = true เพื่อลดข้อมูลลง

ApiVersion ต้องเลือก 14, 15 หรือ Auto?+

99% ของเวลา ใช้ "Auto" ได้เลย มันจะแสกนเองว่า SharePoint นั้นเป็น version ไหน แต่ถ้าเจอ weird error หรือ SharePoint เป็นบนเซิฟเวอร์ legacy ลองผ่อน 15 ดู

ต้องเปิด DisableAppendNoteColumns ตอนไหน?+

เมื่อมี note column ในตัว List แต่ไม่ต้องการ data จากคอลัมน์นั้น เลย true มันเลยไปได้นัก เพราะมันทำให้ Power Query ไม่ต้องเรียก endpoint พิเศษอีกอันสำหรับหมายเหตุ ประหยัด request และเร็วขึ้น

Implementation "2.0" ดีกว่า null หรือ legacy ตรงไหน?+

2.0 จริงๆ เร็วกว่า และเสถียรมากขึ้น อย่างมี refresh job ที่ทำเป็นประจำ ต่อให้ SharePoint ปรับปรุง ก็ไม่พังเหมือน legacy ที่บางทีเจอ compatibility issue ใช้ 2.0 เลยอย่าลังเล

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ SharePoint.Tables จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้SharePoint.TablesAccessing data functions
Accessing data functions (2)
SharePoint.Contents

SharePoint.Contents ดึงรายการโฟลเดอร์และไฟล์ทั้งหมดจาก SharePoint site เป็น navigation table ที่สามารถ drill down ไปยัง Document Libraries และ Lists ต่างๆ ได้

Web.Contents

Web.Contents เป็นฟังก์ชันสำหรับดาวน์โหลดเนื้อหาจากเว็บไซต์หรือแหล่งข้อมูลบนอินเทอร์เน็ตผ่าน URL และคืนค่าเป็นข้อมูลแบบ binary data ที่สามารถนำไปประมวลผลต่อได้
.
รองรับการเชื่อมต่อและเรียกใช้งาน REST API อย่างครบถ้วนพร้อมระบบการยืนยันตัวตนผ่านทางตัวเลือกต่างๆ เช่น การกำหนดค่า Headers สำหรับส่งข้อมูลเพิ่มเติมในคำขอ การใช้ Query parameters สำหรับการกรองข้อมูลและส่งพารามิเตอร์ และการระบุ ApiKeyName เพื่อจัดเก็บคีย์การเข้าถึงอย่างปลอดภัย
.
เหมาะอย่างยิ่งสำหรับการเชื่อมต่อกับบริการเว็บและจุดเชื่อมต่อ API แบบไดนามิก โดยใช้ความสามารถของ RelativePath และตัวเลือก Query เพื่อสร้าง URL แบบยืดหยุ่นและทำให้กระบวนการรีเฟรชข้อมูลทำงานได้อย่างราบรื่นและมีประสิทธิภาพในระบบ Power BI Service

Table functions (2)
Table.SelectColumns

Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น

Table.SelectRows

Table.SelectRows เป็นฟังก์ชันสำหรับกรองตาราง (filter table) ใน Power Query โดยใช้ฟังก์ชันเงื่อนไข (condition function) เพื่อตรวจสอบแต่ละแถว ถ้าเงื่อนไขคืนค่า true จะเก็บแถวนั้นไว้ ถ้าเป็น false จะตัดทิ้ง สามารถใช้ keyword 'each' ร่วมกับการอ้างอิงคอลัมน์ด้วย [ColumnName] เพื่อเขียนเงื่อนไขได้สะดวก รองรับการกรองตามตัวเลข ข้อความ วันที่ การตรวจสอบค่า null และเงื่อนไขที่ซับซ้อนด้วย and/or operators ฟังก์ชันนี้รองรับ Query Folding ซึ่งช่วยเพิ่มประสิทธิภาพเมื่อทำงานกับ data source ขนาดใหญ่

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่