---
title: SharePoint.Tables – ดึงข้อมูลจาก SharePoint Lists
url: https://www.thepexcel.com/functions/power-query/accessing-data-functions/sharepoint-tables/
type: function-explainer
program: Power Query
syntax: "= SharePoint.Tables(url as text, optional options as nullable record) as table"
date: 2025-12-12
updated: 2025-12-25
scores:
  popularity: 6
  difficulty: 4
  usefulness: 6
---

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

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

## คำอธิบาย

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

## Syntax

```excel
= SharePoint.Tables(url as text, optional options as nullable record) as table
```

## Arguments

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

## ตัวอย่าง

### 1. ดึงข้อมูลจาก SharePoint List พื้นฐาน

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

**ผลลัพธ์:** `ตารางที่มีแถวสำหรับแต่ละรายการพนักงาน พร้อมคอลัมน์ทั้งหมดของ List`

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

### 2. ใช้ตัวเลือก ApiVersion และ Implementation 2.0

```excel
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 ซึ่งเร็วกว่า`

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

### 3. ใช้ ViewMode เพื่อดึงเฉพาะคอลัมน์จาก Default View

```excel
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`

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

### 4. ปิดการโหลด Note Columns เพื่อลดเวลา

```excel
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 แยก`

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

## หมายเหตุเพิ่มเติม

- ApiVersion = "Auto" เป็น safe choice ที่สุด มันจะแสกนเองว่า SharePoint server นั้นรองรับ version ไหน ไม่ต้องสลิ่น

- Data หนักๆ ลองใช้ ViewMode = "Default" กับ DisableAppendNoteColumns = true ด้วย combo นี้มันจะดึงแค่สิ่งที่ต้องการจริงๆ

- Note columns ถ้า List ไม่ได้มี ไม่ต้องตั้ง DisableAppendNoteColumns ยังไง Power Query ก็ไม่พบจึงไม่มี overhead อยู่แล้ว

- Permission ด้านผู้ใช้ต้องเช็ก - ต้องอย่างน้อย Read access ถึง List นั้นๆ ไม่งั้น error ตรงๆ เลย

- Modern SharePoint (Online) ให้ใช้ Implementation = "2.0" จริง legacy connector มันช่างซบเซา ไม่ควรไป

- ถ้าดึงมาแล้วต้องเลือกคอลัมน์บางตัว ใช้ Table.SelectColumns() หลังจาก SharePoint.Tables() ไม่ต้องนั่งปรับแต่ง options ยุ่งยาก

## คำถามที่พบบ่อย

**Q: SharePoint.Tables กับ SharePoint.Contents ต่างกันไง?**

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

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

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

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

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

**Q: ต้องเปิด DisableAppendNoteColumns ตอนไหน?**

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

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

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

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: SharePoint.Tables](https://learn.microsoft.com/en-us/powerquery-m/sharepoint-tables) _(official)_
- [Power Query M Function Reference](https://learn.microsoft.com/en-us/powerquery-m/) _(official)_
- [SharePoint List URL Format](https://learn.microsoft.com/en-us/sharepoint/dev/general-development/urls-and-tokens-in-sharepoint) _(official)_

---

_Source: [https://www.thepexcel.com/functions/power-query/accessing-data-functions/sharepoint-tables/](https://www.thepexcel.com/functions/power-query/accessing-data-functions/sharepoint-tables/)_
