คู่มือบทช่วยสอน

ดึงอัตราแลกเปลี่ยนเข้า Excel ด้วย Power Query

วาง M query ใน Excel เพื่อโหลดตารางอัตราแลกเปลี่ยนที่กด refresh ได้ คู่มือนี้รวมสูตรแปลงเงิน การดึงข้อมูลด้วย Power Query และวิธีเก็บวันที่กับแหล่งข้อมูลไว้ด้วยกัน

1 ต.ค. 2569 · 5 min

ใช้ Power Query โหลดตารางอัตรา แล้วใช้สูตรในเซลล์คำนวณจำนวนเงิน query ด้านล่างเรียก /v1/latest/USD แปลง JSON เป็นตารางสองคอลัมน์ และอัปเดตเมื่อเปิดไฟล์หรือกด Refresh All ถ้าต้องการอัตราของวันที่ระบุ ให้ใช้เครื่องมือย้อนหลังและเก็บวันที่กับแหล่งข้อมูลไว้พร้อมผลลัพธ์ ถ้าต้องการสูตรแปลงสกุลเงินและตัวอย่างที่แก้ไขได้ ดูคู่มือแปลงสกุลเงินใน Excel ภาษาอังกฤษ หากต้องการอัตราของวันที่ระบุ ใช้เครื่องมืออัตราย้อนหลังภาษาอังกฤษ และเก็บวันที่กับแหล่งข้อมูลไว้พร้อมผลลัพธ์

  • Power Query M มีใน Excel ทั้ง Mac และ Windows
  • คำขอ /v1/latest/{base} ครั้งเดียวคืนค่าได้หลายสกุล
  • แยก host กับ path ด้วย RelativePath เพื่อให้ scheduled refresh ทำงาน
  • ส่งคีย์ใน Authorization header
  • อัตราเป็นข้อมูลอ้างอิงสำหรับโมเดลและการวิเคราะห์ ไม่ใช่ราคาชำระ
  • คีย์ฟรีมี 5,000 calls ต่อเดือนและ 10 requests ต่อนาที ไม่ต้องใช้บัตร

สร้าง API key ฟรี

สมัครที่ exchangerate.dev/signup ยืนยันอีเมล แล้วคัดลอกคีย์ที่ขึ้นต้นด้วย exr_live_ แพ็กเกจฟรีมี 5,000 calls ต่อเดือน

เปิด Advanced Editor

ใน Excel เลือก Data → Get Data → Launch Power Query Editor สร้าง Blank Query แล้วเปิด View → Advanced Editor

วาง M query

เปลี่ยนคีย์ตัวอย่าง กด Done แล้วตั้งชื่อ query ว่า FxRates ต้องคง RelativePath ไว้เพื่อไม่ให้ Microsoft 365 มองว่าเป็น dynamic data source

Power Query · Advanced Editor
// excel: Power Query M query "FxRates"// curl-equivalent: https://api.exchangerate.dev/v1/latest/USD// Private workbook only: do not share or export this query with a key.// Replace ApiKey with your exchangerate.dev key from /signuplet    ApiKey = "exr_live_replace_with_your_key_here",    Base = "USD",    Source = Json.Document(        Web.Contents(            "https://api.exchangerate.dev",            [                RelativePath = "v1/latest/" & Base,                Timeout = #duration(0, 0, 0, 10),                Headers = [#"Authorization" = "Bearer " & ApiKey]            ]        )    ),    Rates = Record.ToTable(Source[rates]),    Renamed = Table.RenameColumns(Rates, {{"Name", "currency"}, {"Value", "rate"}})in    Renamed

โหลดตารางลงชีต

กด Close & Load ครั้งแรก Excel จะถาม credential ของ https://api.exchangerate.dev ให้เลือก Anonymous เพราะ query ส่งคีย์ใน header อยู่แล้ว

เปลี่ยนสกุลฐานหรือกรองสกุลเงิน

เปลี่ยน Base เพื่อใช้สกุลฐานอื่น หากต้องการเพียงบางสกุลให้เพิ่ม symbols ใน Query และขอทั้งหมดในคำขอเดียว

Power Query · variants
// Re-base every rate to the euroBase = "EUR"// Return only the quote currencies you need (one call, fewer rows)RelativePath = "v1/latest/USD",Query = [symbols = "EUR,GBP,JPY"]// One pair, rate calculated for youRelativePath = "v1/convert/USD/JPY/1"   // read Source[rate]
ให้ AI ช่วยแก้ query ได้ไหม?

ระบุ endpoint, Authorization header และการใช้ RelativePath ให้ชัด แล้วเทียบชื่อฟิลด์กับ code ในหน้านี้ อย่าส่งคีย์จริงเข้าแชต

ตั้ง refresh ให้พอดีกับงาน

อัปเดตได้ตอนเปิดไฟล์ กด Refresh All หรือตั้งช่วงเวลาใน Query Properties ควรขอหลายสกุลในคำขอเดียวแทนการทำ query แยก

  • Power Query M มีใน Excel ทั้ง Mac และ Windows
  • คำขอ /v1/latest/{base} ครั้งเดียวคืนค่าได้หลายสกุล
  • แยก host กับ path ด้วย RelativePath เพื่อให้ scheduled refresh ทำงาน
  • ส่งคีย์ใน Authorization header
  • อัตราเป็นข้อมูลอ้างอิงสำหรับโมเดลและการวิเคราะห์ ไม่ใช่ราคาชำระ
รหัสอาการวิธีตรวจ
401ไม่ได้รับอนุญาตวาง API key ใหม่และล้าง credential เดิมของ data source
429เรียกถี่เกินไปลดรอบ refresh และอย่าให้หลาย query เริ่มพร้อมกัน
อัตราสำหรับอ้างอิง

เหมาะกับโมเดล รายงาน การวิเคราะห์ และการแสดงผล ไม่ใช่ราคาซื้อขายหรือราคาชำระ

ลองเรียก endpoint ก่อนสร้างคิวรี

คุณเรียก /v1/latest/USD ได้โดยไม่ต้องใช้ key เพื่อดู JSON โครงสร้างเดียวกับที่คิวรี M แปลง เมื่อพอใจแล้ว key ฟรี จะให้โควตาเฉพาะของเวิร์กบุ๊ก 5,000 ครั้งต่อเดือน; ไม่ต้องใช้บัตร

คำถาม

ใช้กับ Excel บน Mac ได้ไหม?

ได้ Power Query M ใช้ได้ทั้ง Mac และ Windows และไม่พึ่ง WEBSERVICE()

ขอแค่สกุลเดียวได้อย่างไร?

ตั้ง symbols ใน Query เป็นรหัสที่ต้องการ เช่น JPY

ทำไมเลือก Anonymous?

เพราะ M query ส่งคีย์ใน Authorization header อยู่แล้ว

ใช้ในรายงานเชิงพาณิชย์ได้ไหม?

Free ใช้แสดงผลเชิงพาณิชย์ได้โดยมีลิงก์เครดิตที่เห็นชัด แพ็กเกจเสียเงินไม่ต้องมีเครดิต ห้ามแจกจ่ายข้อมูลต่อ

ตั้ง refresh อัตโนมัติอย่างไร?

ใช้ Query Properties เพื่อตั้งช่วงเวลา หรือเลือก refresh ตอนเปิดไฟล์

คีย์ฟรีมีข้อจำกัดอะไรบ้าง?

คีย์ฟรีมี 5,000 calls ต่อเดือนและ 10 requests ต่อนาที หากตั้ง refresh ตามเวลา ให้รวมหลายสกุลเงินไว้ใน query เดียวและตรวจสอบการใช้งาน

อ่านต่อ

เริ่มต้นด้วยคีย์ API ฟรี

ส่งคำขอได้ 5,000 ครั้งต่อเดือนด้วยแพ็กเกจฟรี ไม่ต้องใช้บัตรเครดิต

รับคีย์ฟรี