กลับไปหน้า Power Query
ทริคPower Query

Reference กับ Duplicate

สอง query ต่างกันยังไง เลือกใช้ให้ถูกเวลาแตก query หลายชุดจากต้นทางเดียว

เริ่มอ่านตรงนี้ก่อน

อธิบายแบบง่าย

Reference กับ Duplicate คือเรื่องที่ช่วยให้เราใช้เชื่อมต่อและทำความสะอาดข้อมูลซ้ำๆ ให้เป็นขั้นตอนก่อนเอาไปทำรายงานได้ถูกทางขึ้น

ระดับ

เหมาะกับคนที่เริ่มลงมือทำแล้ว

ใช้เมื่อไหร่

อยากมี query กลางทำความสะอาดครั้งเดียว แล้วแตกหลายสรุปออกไป ใช้ Reference

อ่านแล้วทำอะไรต่อ

ทำ query กลางชื่อ Sales_Clean ล้างข้อมูลครั้งเดียว แล้ว Reference ออกไปเป็น Sales_ByMonth และ Sales_ByRegion

เห็นภาพ: ทริคนี้เป็นยังไง

Duplicate — ก๊อปขั้นตอนทั้งหมดมาแยกอิสระ

ได้สำเนาที่มีชุดขั้นตอนครบเป็นของตัวเอง ไม่ผูกกับต้นฉบับ แก้ logic ที่ต้นฉบับแล้วสำเนาไม่เปลี่ยนตาม เหมาะเมื่ออยากทดลองแก้แยกโดยไม่กระทบของเดิม แต่ถ้าต้องแก้ทั้งสองที่ต้องไล่แก้ซ้ำเอง

Reference — ชี้ไปผลลัพธ์ของ query เดิม

query ใหม่เริ่มจากผลลัพธ์ของ query เดิมเป็นจุดตั้งต้น เมื่อแก้ที่ต้นทาง (เช่น query กลางชื่อ Sales_Clean) ทุก query ที่ reference จะได้ผลตามทันที เหมาะกับการล้างข้อมูลครั้งเดียวที่ staging แล้วแตกหลายมุมมองออกไป แก้ที่เดียวมีผลทุกที่

สอง query หน้าตาเหมือนกัน แต่ความสัมพันธ์กับต้นทางต่างกันคนละเรื่อง

ใช้ตอนไหน?

  • อยากมี query กลางทำความสะอาดครั้งเดียว แล้วแตกหลายสรุปออกไป ใช้ Reference
  • อยากได้สำเนาที่แก้แยกอิสระไม่กระทบของเดิม ใช้ Duplicate
  • ต้องการให้แก้ logic ที่ต้นทางที่เดียวแล้วทุกมุมมองได้ตามไปด้วย ใช้ Reference

ความหมาย

Duplicate คือการก๊อป query ทั้งชุดขั้นตอนออกมาเป็นอีกอันแยกกันสมบูรณ์ ส่วน Reference คือการสร้าง query ใหม่ที่ 'ชี้' ไปยังผลลัพธ์ของ query เดิมเป็นจุดเริ่มต้น เมื่อแก้ query ต้นทาง query ที่ reference จะได้ผลตามไปด้วย เหมาะกับการสร้าง query เตรียมข้อมูลกลางแล้วแตกหลายมุมมองออกไป

เลือกตามความสัมพันธ์ที่ต้องการ

คลิกขวาที่ query ใน Queries pane เลือก Reference เพื่อชี้ไปผลลัพธ์เดิม หรือ Duplicate เพื่อก๊อปขั้นตอนทั้งหมดมาแยก ปกติทำ query กลางเป็น 'staging' แล้ว Reference ออกไปหลายอัน

Right-click query > Reference   // ชี้ไปผลลัพธ์เดิม (linked)
Right-click query > Duplicate   // ก๊อปขั้นตอนทั้งหมด (independent)
// Reference สร้าง M ง่าย ๆ:
= StagingQuery

ตัวอย่างการใช้

Staging query แล้ว Reference

ทำ query กลางชื่อ Sales_Clean ล้างข้อมูลครั้งเดียว แล้ว Reference ออกไปเป็น Sales_ByMonth และ Sales_ByRegion

= Sales_Clean