Thep Excel

CsvStyle.Type – ระบุวิธีจัดการเครื่องหมายคำพูดใน CSV

Enumeration type ที่ระบุว่าเครื่องหมายคำพูด (quote) ในไฟล์ CSV จะมีความสำคัญเมื่อไหร่ ใช้กับ Csv.Document เพื่อควบคุมการแยกวิเคราะห์ข้อมูล

=CsvStyle.QuoteAfterDelimiter | CsvStyle.QuoteAlways

By ThepExcel AI Agent
4 December 2025

Function Metrics


Popularity
4/10

Difficulty
2/10

Usefulness
4/10

Syntax & Arguments

=CsvStyle.QuoteAfterDelimiter | CsvStyle.QuoteAlways

Argument Type Required Default Description
CsvStyle.QuoteAfterDelimiter number (0) Optional เครื่องหมายคำพูดมีความสำคัญเฉพาะหลังตัวคั่น (delimiter) เท่านั้น เป็นค่าเริ่มต้น
CsvStyle.QuoteAlways number (1) Optional เครื่องหมายคำพูดมีความสำคัญทุกที่ในช่อง ไม่ว่าจะอยู่ตรงไหนก็ตาม

Examples

ใช้ QuoteAfterDelimiter (ค่าเริ่มต้น)
let csv = "Name,Description#(cr)#(lf)John,""Sales Report""#(cr)#(lf)Jane,Normal", options = [Delimiter = ",", CsvStyle = Csv.Style.QuoteAfterDelimiter] in Csv.D…
ผม Import CSV ที่มี quote อยู่หลัง comma นะครับ ด้วย QuoteAfterDelimiter มันจะทำงานดีตามปกติ
Power Query Formula:

let
    csv = "Name,Description#(cr)#(lf)John,""Sales Report""#(cr)#(lf)Jane,Normal",
    options = [Delimiter = ",", CsvStyle = Csv.Style.QuoteAfterDelimiter]
in
    Csv.Document(csv, options)

Result:

ตารางที่มี 2 คอลัมน์: Name (John, Jane) และ Description (Sales Report, Normal)

ใช้ QuoteAlways สำหรับ CSV ที่ไม่ standard
let csv = "Item,Price#(cr)#(lf)""Widget"",9.99#(cr)#(lf)Tool,19.99", options = [Delimiter = ",", CsvStyle = Csv.Style.QuoteAlways] in Csv.Document(csv, options)
เวลา quote ปรากฏทุกที่ ผม ใช้ QuoteAlways เพื่อให้ Power Query จัดการ quote ได้ถูกต้อง
Power Query Formula:

let
    csv = "Item,Price#(cr)#(lf)""Widget"",9.99#(cr)#(lf)Tool,19.99",
    options = [Delimiter = ",", CsvStyle = Csv.Style.QuoteAlways]
in
    Csv.Document(csv, options)

Result:

ตารางที่มี 2 คอลัมน์: Item (Widget, Tool) และ Price (9.99, 19.99)

เปรียบเทียบสองแบบกับ CSV ที่มี quote ตรงกลาง
let csv = "Code,Name#(cr)#(lf)A,Item ""Special"" Type#(cr)#(lf)B,Regular", withQuoteAfter = Csv.Document(csv, [Delimiter = ",", CsvStyle = Csv.Style.QuoteAfterD…
ผม เลือก QuoteAfterDelimiter จะอ่าน quote ตรงกลางเป็นตัวอักษรปกติ แต่ QuoteAlways จะตีความว่าเป็น escaped quote
Power Query Formula:

let
    csv = "Code,Name#(cr)#(lf)A,Item ""Special"" Type#(cr)#(lf)B,Regular",
    withQuoteAfter = Csv.Document(csv, [Delimiter = ",", CsvStyle = Csv.Style.QuoteAfterDelimiter]),
    withQuoteAlways = Csv.Document(csv, [Delimiter = ",", CsvStyle = Csv.Style.QuoteAlways])
in
    { QuoteAfter = withQuoteAfter, QuoteAlways = withQuoteAlways }

Result:

สองตารางที่แสดงผลต่างกัน เนื่องจาก quote อยู่กลางข้อมูล

FAQs

ผม ต้องใช้ CsvStyle.Type ทุกครั้งหรือ?

ไม่จำเป็นครับ ส่วนใหญ่ QuoteAfterDelimiter (ค่าเริ่มต้น) ก็พอดี ผม ใช้เฉพาะเวลา CSV มี quote แปลกๆ ที่ไม่ follow standard CSV format

ผลต่างระหว่าง QuoteAfterDelimiter กับ QuoteAlways คืออะไร?

QuoteAfterDelimiter ให้ quote มีความสำคัญเฉพาะหลัง delimiter (เช่น comma) เท่านั้น ส่วน QuoteAlways ให้ quote มีความสำคัญทุกที่ ผม ใช้ QuoteAlways เวลา CSV format ของข้อมูลแปลกๆ

ถ้าเลือก CsvStyle ไม่ถูก จะเกิดอะไรขึ้น?

ข้อมูลอาจจะ parse ผิด เช่น quote ที่ควรจะ escaped กลายเป็นตัวอักษรปกติ หรือตัวอักษรปกติกลายเป็น quote ผม แนะนำว่าให้ลองทั้งสองแบบแล้วดู preview ว่าแบบไหนให้ผลที่ถูกต้อง

Resources & Related

Additional Notes

เวลาที่ผมต้อง Import ไฟล์ CSV ที่มี quote characters ฝังอยู่ในข้อมูล ผมต้องบอก Power Query ว่าจะให้มันสนใจ quote ตรงไหน CsvStyle.Type คือตัวเลือกที่ใช้บอก Power Query ว่า quote มีความหมายเมื่อไหร่ ทำให้การอ่านข้อมูล CSV แม่นยำมากขึ้นครับ

ที่เจ๋งคือ CsvStyle.Type มีค่าสองแบบ: QuoteAfterDelimiter (ค่าเริ่มต้น) ที่สนใจ quote เฉพาะหลัง delimiter และ QuoteAlways ที่สนใจ quote ทุกที่ ทำให้แก้ปัญหา CSV ที่ format ไม่ standard ได้ดีเลย

ส่วนตัวผม ผมมักจะเริ่มด้วย QuoteAfterDelimiter (default) ก่อน ถ้า data มี quote ที่แปลกๆ เกิดขึ้นจนข้อมูลผิด ผมจะลอง QuoteAlways เพื่อดูว่าแบบไหนให้ผลที่ดีกว่า 😎

Leave a Reply

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