Thep Excel

638 functions

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

Syntax
Table.SelectRows(table as table, condition as function) as table

Table.Skip คืนตารางที่ลบแถวแรกๆ ออกไปแล้ว โดยสามารถระบุจำนวนแถวที่ต้องการข้าม หรือระบุเงื่อนไข (condition function) เพื่อข้ามแถวที่ตรงเงื่อนไขจนกว่าจะพบแถวที่ไม่ตรงแล้วหยุด ถ้าไม่ระบุจะข้ามแถวแรก 1 แถว ถ้าส่งเป็นตัวเลข เช่น 5 จะข้าม 5 แถวแรก ถ้าส่งเป็นฟังก์ชัน เช่น each [Amount] > 0 จะข้ามแถวที่ Amount > 0 จนกว่าจะเจอแถวที่ Amount ≤ 0

Syntax
Table.Skip(table as table, optional countOrCondition as any) as table

แบ่งตารางออกเป็นรายการของตารางย่อยตามจำนวนแถวที่กำหนด เหมาะสำหรับ Pagination และ Batch Processing

Syntax
Table.Split(table as table, pageSize as number) as list

Table.StopFolding ป้องกันไม่ให้ขั้นตอน downstream ถูกส่งกลับไปประมวลผลที่ data source เดิม ช่วยเมื่อต้องดีบักหรือเมื่อการบังคับประมวลผลใน Power Query ให้ผลลัพธ์ที่คาดหวัง

Syntax
= Table.StopFolding(table)

Table.ToColumns แปลงตาราง (Table) ให้เป็น List ของ List โดยแต่ละ List ย่อยแทนข้อมูลจากคอลัมน์เดียว เรียงตามลำดับคอลัมน์จากซ้ายไปขวา ส่วนกลับกันของ Table.FromColumns

Syntax
= Table.ToColumns(table as table) as list

Table.ToRows แปลงตารางให้เป็น List ของ List โดยแต่ละ List ย่อยแทนข้อมูล 1 แถว ไม่มีชื่อคอลัมน์ เหมาะสำหรับส่งออกข้อมูลเป็น JSON/CSV หรือประมวลผลแถวโดยไม่สนใจชื่อฟิลด์

Syntax
Table.ToRows(table as table) as list

Table.TransformColumnNames ใช้ฟังก์ชันแปลงชื่อ (Name Generator) เพื่อเปลี่ยนชื่อคอลัมน์ทั้งหมดในตาราง เหมาะสำหรับจัดรูปแบบชื่อคอลัมน์เป็นแบบเดียวกัน เช่น ตัวพิมพ์ใหญ่ ลบช่องว่าง หรือเพิ่ม Prefix

Syntax
Table.TransformColumnNames(table as table, nameGenerator as function, optional options as nullable record) as table

Table.TransformColumns ใช้สำหรับแปลงข้อมูลในคอลัมน์โดยใช้ฟังก์ชันที่กำหนดไว้ แต่ละคอลัมน์สามารถมีการแปลงแตกต่างกันได้ รองรับการเปลี่ยนแปลงประเภทข้อมูลในเวลาเดียวกัน

Syntax
Table.TransformColumns(table, transformOperations, [defaultTransformation], [missingField])

Table.TransformColumnTypes เปลี่ยน Data Type ของคอลัมน์ที่ระบุให้เป็นประเภทใหม่ (เช่น Text เป็น Number, Date เป็น Text) โดยใช้ built-in conversion methods เบื้องหลัง รองรับการแปลงหลายคอลัมน์พร้อมกัน และสามารถระบุ culture parameter เพื่อจัดการ locale-specific formatting สำหรับวันที่และตัวเลข เหมาะสำหรับขั้นตอนเตรียมข้อมูลก่อน Load เข้า Data Model เพื่อป้องกัน conversion errors และเพิ่มประสิทธิภาพ ใช้ร่วมกับ Table.TransformColumns, Number.From, Text.From และ Date.From เมื่อต้องการ custom transformation logic

Syntax
Table.TransformColumnTypes(table as table, typeTransformations as list, optional culture as nullable text) as table

Table.Transpose จะกลับด้านตาราง คล้ายกับการ Copy > Paste Special > Transpose ใน Excel โดยข้อมูลในแถวที่ 1 จะกลายเป็นคอลัมน์ที่ 1 แถวที่ 2 เป็นคอลัมน์ที่ 2 ไปเรื่อยๆ

Syntax
Table.Transpose(table as table, optional columns as any) as table

Table.Unpivot แปลงคอลัมน์ที่ระบุให้กลายเป็นแถว (Unpivot) โดยสร้าง 2 คอลัมน์ใหม่ คอลัมน์แรกเก็บชื่อคอลัมน์เดิม (Attribute) และคอลัมน์ที่สองเก็บค่า (Value) ฟังก์ชันนี้จะข้ามค่า null โดยอัตโนมัติ เหมาะสำหรับเตรียมข้อมูลแบบ Wide Format ให้กลายเป็น Long Format สำหรับใช้ใน Power BI หรือ Pivot Table

Syntax
Table.Unpivot(table as table, pivotColumns as list, attributeColumn as text, valueColumn as text) as table

Table.UnpivotOtherColumns แปลงคอลัมน์ที่ไม่ได้ระบุทั้งหมดให้กลายเป็นแถว (Unpivot) โดยระบุเฉพาะคอลัมน์ที่ต้องการคงไว้ ข้อดีคือเป็น Dynamic ถ้ามีคอลัมน์ใหม่เพิ่มเข้ามาในอนาคตก็จะถูก Unpivot ให้อัตโนมัติ เหมาะสำหรับแปลงข้อมูลจาก Wide Format (หลายคอลัมน์) ให้เป็น Long Format (หลายแถว) สำหรับ PivotTable และ Database

Syntax
Table.UnpivotOtherColumns(table as table, pivotColumns as list, attributeColumn as text, valueColumn as text) as table

Tables.GetRelationships ดึงข้อมูลความสัมพันธ์ (Relationships) ระหว่างตารางต่างๆ จาก Navigation Table เพื่อวิเคราะห์โครงสร้างข้อมูล

Syntax
Tables.GetRelationships(tables as table, optional dataColumn as nullable text) as table

Text.At ใช้สำหรับดึงอักขระตัวเดียวที่ตำแหน่งที่ระบุในข้อความ โดยใช้การนับ zero-based index ที่ตำแหน่ง 0 คือตัวแรก ตำแหน่ง 1 คือตัวที่สอง เป็นต้น

Syntax
Text.At(text as nullable text, index as number) as nullable text

Text.Clean ลบตัวอักษรควบคุมที่ไม่สามารถพิมพ์ได้ (Control Characters) เช่น Line Feed, Tab, Carriage Return ออกจากข้อความ โดยเก็บเฉพาะตัวอักษรที่มองเห็นได้และพิมพ์ได้

Syntax
Text.Clean(text as nullable text) as nullable text

Text.Combine ใช้สำหรับรวมข้อความหลายตัวจาก List เข้าด้วยกันเป็นข้อความเดียว โดยสามารถเลือกใช้ตัวคั่น (separator) เช่น ลูกน้ำ เครื่องหมายขีด หรือ space ได้ เหมาะสำหรับสร้างชื่อเต็ม ที่อยู่ หรือรหัสประจำตัวจากส่วนประกอบย่อยๆ

Syntax
Text.Combine(texts as list, optional separator as nullable text) as text

Text.Contains ใช้สำหรับตรวจสอบว่าข้อความที่กำหนด (text) มีข้อความย่อยที่ต้องการค้นหา (substring) อยู่ภายในหรือไม่ ส่งคืนค่า true หรือ false

Syntax
Text.Contains(text, substring, comparer)

Text.End ใช้สำหรับดึงอักขระจำนวนที่ระบุจากท้ายสตริงข้อความ เป็นประโยชน์สำหรับการดึงนามสกุลไฟล์ และส่วนท้ายของข้อมูล

Syntax
Text.End(text as nullable text, count as number) as nullable text

Text.EndsWith ตรวจสอบว่าข้อความหลักลงท้ายด้วยข้อความย่อย (substring) ที่กำหนดหรือไม่ คืนค่า true หากตรงกัน และ false หากไม่ตรงกัน สามารถใช้ Comparer เพื่อควบคุม Case Sensitivity

Syntax
Text.EndsWith(text as nullable text, substring as text, optional comparer as nullable function) as nullable logical

Text.FromBinary ใช้สำหรับแปลงค่า Binary เป็นข้อความ โดยใช้การเข้ารหัส UTF-8 เป็นค่าเริ่มต้น รองรับการเข้ารหัสอื่นๆ เช่น UTF-16 และ ASCII

Syntax
Text.FromBinary(binary as nullable binary, optional encoding as nullable number) as nullable text

Text.InferNumberType ใช้สำหรับตรวจสอบว่าข้อความแสดงตัวเลขชนิดใด เช่น Int64, Double, Decimal หรือ Single เป็นประโยชน์สำหรับการแปลงข้อมูลโดยอัตโนมัติ

Syntax
Text.InferNumberType(text as text, optional culture as nullable text) as type

Text.Length ใช้นับจำนวนตัวอักษรทั้งหมดในสตริงข้อความ รวมถึงช่องว่างและอักขระพิเศษ ผลลัพธ์คืนค่าเป็นตัวเลข มีประโยชน์ในการตรวจสอบคุณภาพข้อมูล การกรองข้อมูลตามความยาว หรือการคำนวณ Logic ต่างๆ

Syntax
Text.Length(text as nullable text) as nullable number

Text.Lower ใช้แปลงอักขระทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก (lowercase) ช่วยให้ข้อมูลมีรูปแบบสอดคล้องกัน สามารถกำหนด Culture เพื่อให้การแปลงเป็นไปตามกฎของภาษาและภูมิภาคที่ต้องการ

Syntax
Text.Lower(text as nullable text, optional culture as nullable text) as nullable text

Text.Middle ใช้สำหรับดึงข้อความตั้งแต่ตำแหน่งที่ระบุไปจำนวนอักขระที่กำหนด หากไม่ระบุจำนวนตัวอักษร จะดึงจากตำแหน่งเริ่มต้นไปถึงท้าย

Syntax
Text.Middle(text as nullable text, start as number, optional count as nullable number) as nullable text

Text.NewGuid ใช้สำหรับสร้าง GUID (Globally Unique Identifier) ใหม่ที่เป็นเอกลักษณ์ แต่ละครั้งที่เรียกจะสร้าง GUID ที่แตกต่างกัน ใช้สำหรับสร้างรหัสเฉพาะตัวที่ไม่ซ้ำ

Syntax
Text.NewGuid() as text

Text.Pad เพิ่มอักษรเติมให้ข้อความมีความยาวที่ต้องการ สามารถเพิ่มไปทางด้านซ้าย กลาง หรือขวาของข้อความ ฟังก์ชันนี้มีประโยชน์เมื่อต้องการจัดรูปแบบข้อความให้มีความยาวเท่ากัน เช่นรหัสสินค้า หรือรหัสพนักงาน

Syntax
Text.Pad(text as text, count as number, optional padCharacter as nullable text) as text

Text.PadEnd จะเพิ่มอักขระที่ระบุ (เช่น '0' หรือ '-') เข้าไปด้านหลังของข้อความ จนกว่าความยาวของข้อความนั้นจะถึงจำนวนหลักที่ต้องการ ใช้ในการจัดรูปแบบข้อมูลให้สม่ำเสมอ หรือสร้าง Field ที่มี Character ครบตาม Spec

Syntax
Text.PadEnd(text as nullable text, count as number, optional character as nullable text) as nullable text

Text.PadStart จะเพิ่มอักขระที่ระบุ (เช่น '0' หรือ '-') เข้าไปด้านหน้าของข้อความ จนกว่าความยาวของข้อความนั้นจะถึงจำนวนหลักที่ต้องการ ใช้ในการจัดรูปแบบข้อมูลให้สม่ำเสมอ หรือนำไปใช้กับ Sort ได้อย่างถูกต้อง

Syntax
Text.PadStart(text as nullable text, count as number, optional character as nullable text) as nullable text

หาตำแหน่งของข้อความย่อยในข้อความหลัก (0-indexed) โดยคืนค่า -1 หากไม่พบ

Syntax
Text.PositionOf(text as text, substring as text, optional occurrence as nullable number, optional comparer as nullable function) as any

Text.PositionOfAny ใช้สำหรับค้นหาตำแหน่งแรกของอักขระใดๆ ในรายการที่ระบุ เป็นประโยชน์สำหรับการค้นหาเครื่องหมายพิเศษ สระ หรืออักขระที่ระบุ

Syntax
Text.PositionOfAny(text as text, characters as list, optional occurrence as nullable number) as any

Text.Range ใช้สำหรับดึงข้อความตั้งแต่ตำแหน่งที่ระบุไปยังท้ายสตริง หรือจำนวนอักขระที่กำหนด ถ้าจำนวนอักขระไม่พอ ฟังก์ชันจะคืนค่าเท่าที่หาได้

Syntax
Text.Range(text as nullable text, offset as number, optional count as nullable number) as nullable text

Text.RemoveRange ใช้สำหรับลบอักขระจำนวนที่ระบุตั้งแต่ตำแหน่งที่กำหนด ค่าเริ่มต้นจะลบ 1 อักขระหากไม่ระบุจำนวน

Syntax
Text.RemoveRange(text as nullable text, offset as number, optional count as nullable number) as nullable text