ระบุการกระทำเมื่อพบค่าเกินมาในแถว (Extra Values) – ถ้า Splitter Function ส่งคอลัมน์มามากกว่าที่คาดหวัง ให้ Power Query รู้ว่าต้องทำไง
=ExtraValues.List ExtraValues.Error ExtraValues.Ignore
=ExtraValues.List ExtraValues.Error ExtraValues.Ignore
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| ExtraValues.List | ExtraValues type | Optional | รวมคอลัมน์ส่วนเกินทั้งหมดเข้าไปในรูปแบบ List ไว้ที่คอลัมน์สุดท้าย | |
| ExtraValues.Error | ExtraValues type | Optional | โยนข้อมูลสิ้นไป และให้ Power Query แสดง Error ขึ้นมา | |
| ExtraValues.Ignore | ExtraValues type | Optional | เพิกเฉยต่อคอลัมน์ส่วนเกิน ลบทิ้งเลยโดยไม่แสดง Error |
let Source = "A|B|C|D|E", Split = Text.Split(Source, "|"), ToTable = Table.FromList(Split, Splitter.SplitByNothing(), {"Column1"}), ExpandSplit = Table.ExpandLi…let
Source = "A|B|C|D|E",
Split = Text.Split(Source, "|"),
ToTable = Table.FromList(Split, Splitter.SplitByNothing(), {"Column1"}),
ExpandSplit = Table.ExpandListColumn(ToTable, "Column1")
in
ExpandSplit
ข้อมูลแบ่งออกมา 5 คอลัมน์ โดยคอลัมน์ส่วนเกินรวมไว้ใน List เดียว
Table.SplitColumn( Source, "ColumnName", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"A", "B", "C"}, ExtraValues.Error )=Table.SplitColumn(
Source,
"ColumnName",
Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv),
{"A", "B", "C"},
ExtraValues.Error
)
ถ้ามีคอลัมน์ส่วนเกิน → Error: "We expected 3 columns but the operation produced 5"
Table.SplitColumn( Source, "ColumnName", Splitter.SplitTextByDelimiter("|"), {"A", "B", "C"}, ExtraValues.Ignore )=Table.SplitColumn(
Source,
"ColumnName",
Splitter.SplitTextByDelimiter("|"),
{"A", "B", "C"},
ExtraValues.Ignore
)
เฉพาะคอลัมน์ A, B, C ที่ถูกเก็บไว้ คอลัมน์เกินทั้งหมดถูกลบทิ้ง
ขึ้นอยู่กับข้อมูลของคุณ – ผมแนะนำ ExtraValues.List เป็นตัวเลือกแรกเสมอ เพราะข้อมูลไม่หาย ถ้าคุณแน่ใจแน่วว่า Split ต้องได้ 3 คอลัมน์พอดี ให้ใช้ ExtraValues.Error เพื่อจับค่าผิดปกติ ส่วน Ignore ผมใช้เฉพาะเมื่อรู้ชัดว่าไม่มีข้อมูลสำคัญในคอลัมน์เกิน
Ignore จะลบคอลัมน์เกินไปเงียบๆ ไม่บ่อกอะไร Error จะขึ้น Error ให้เห็นชัดว่า Split ไม่ตรงกับจำนวนคอลัมน์ที่คาดหวัง ส่วนตัวผม ชอบ Error มากกว่า เพราะมันบอกให้รู้ว่าข้อมูลซอร์สมีปัญหา
ผมมักใช้กับ Text.Split, Splitter.SplitTextByDelimiter, Splitter.SplitTextByRanges, และ Table.SplitColumn ใดๆ – โดยทั่วไป ที่ไหนมี Split ข้อมูลออก ก็ต้องคิดถึง ExtraValues.Type ด้วย
เวลาเรา Split ข้อมูลด้วย Splitter Function ใน Power Query แล้วพบว่ามีคอลัมน์ส่วนเกินมาว่วน ExtraValues.Type ก็คือตัวกำหนดว่า Power Query ต้อง “จัดการ” มันให้ถูกวิธี ครับ
แทนที่จะให้มันเกะกะ Power Query มี 3 แบบให้เลือก:
| ชื่อ (Name) | ค่า (Value) | คำอธิบาย |
|---|---|---|
| ExtraValues.List | 0 | รวมคอลัมน์ส่วนเกินทั้งหมดเข้าไปในรูปแบบ List ไว้ที่คอลัมน์สุดท้าย – ส่วนตัวผมชอบวิธีนี้เพราะข้อมูลไม่หาย |
| ExtraValues.Error | 1 | โยนข้อมูลสิ้นไป! ให้ Power Query แสดง Error ขึ้นมา ซึ่งยุ่งมากถ้าข้อมูลปะปนกัน |
| ExtraValues.Ignore | 2 | เพิกเฉยต่อคอลัมน์ส่วนเกิน ลืมเลยว่ามันเคยมีอยู่ 😅 – ใช้ถ้าบ่มั่นใจว่าไม่มีข้อมูลสำคัญในนั้น |