Thep Excel

NATURALLEFTOUTERJOINรวมตารางแบบ Left Outer Join ตามคอลัมน์ชื่อเดียวกัน

NATURALLEFTOUTERJOIN ทำ left outer join ระหว่าง LeftTable และ RightTable โดยใช้คอลัมน์ชื่อเดียวกันเป็นคีย์ เก็บทุกแถวของตารางซ้ายไว้ทั้งหมด และเติมคอลัมน์จากตารางขวาเมื่อจับคู่ได้ (ไม่จับคู่จะเป็น BLANK)

fx
=NATURALLEFTOUTERJOIN(<LeftTable>, <RightTable>)

ความนิยม4/10
ความยาก5/10
ประโยชน์4/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
LeftTable table ตารางฝั่งซ้าย (ทุกแถวฝั่งนี้จะถูกเก็บไว้)
RightTable table ตารางฝั่งขวา (คอลัมน์ฝั่งนี้จะถูกเติมเมื่อจับคู่ได้)

Additional Notes

NATURALLEFTOUTERJOIN รวมสองตารางเข้าด้วยกันแบบ Left Outer Join โดยอาศัยคอลัมน์ที่มีชื่อเหมือนกันเป็นคีย์การจับคู่ ผลลัพธ์จะเก็บ “ทุกแถวของตารางฝั่งซ้าย” ไว้ทั้งหมด และดึงคอลัมน์จากฝั่งขวามาเติมเมื่อจับคู่ได้ (ถ้าจับคู่ไม่ได้คอลัมน์ฝั่งขวาจะเป็น BLANK)

ถ้าชื่อคอลัมน์คีย์ของสองตารางไม่ตรงกัน ให้ปรับชื่อคอลัมน์ให้เหมือนกันก่อน (เช่นด้วย SELECTCOLUMNS) แล้วค่อยทำ NATURALLEFTOUTERJOIN

How it works

เติมข้อมูลอ้างอิงให้ตารางหลัก

เก็บแถวตารางหลักไว้ทั้งหมด แล้วเติมข้อมูลจากตารางอ้างอิงเมื่อจับคู่ได้

ตรวจรายการที่ไม่มีการจับคู่

แถวที่คอลัมน์ฝั่งขวาเป็น BLANK คือแถวที่ไม่พบคู่

Examples

ตัวอย่างที่ 1: Left outer join เพื่อเติมข้อมูลสินค้าJoined = NATURALLEFTOUTERJOIN( Sales, Product )

เหมาะเมื่อ Sales เป็นตารางหลักที่ต้องเก็บครบ แล้วเติมข้อมูลจาก Product

fx
Joined =
NATURALLEFTOUTERJOIN(
Sales,
Product
)

ผลลัพธ์ได้ตารางที่เก็บทุกแถวของ Sales และเติมคอลัมน์จาก Product เมื่อจับคู่ได้
ตัวอย่างที่ 2: หารายการที่ไม่พบคู่ (แนวคิด)ไม่พบคู่ (แนวคิด) = FILTER( NATURALLEFTOUTERJOIN(Sales, Product), ISBLANK(Product[ProductName]) )

หลัง join แล้วสามารถตรวจคอลัมน์ฝั่งขวาที่เป็น BLANK เพื่อหาแถวที่ไม่จับคู่

fx
=ไม่พบคู่ (แนวคิด) =
FILTER(
NATURALLEFTOUTERJOIN(Sales, Product),
ISBLANK(Product[ProductName])
)

ผลลัพธ์ได้แถวที่ Sales ไม่พบสินค้าใน Product
ตัวอย่างที่ 3: ปรับชื่อคีย์ก่อน join (แนวคิด)Joined (แนวคิด) = NATURALLEFTOUTERJOIN( SELECTCOLUMNS(A, "Key", A[CustomerID], "ValueA", A[Value]), SELECTCOLUMNS(B, "Key", B[CustID], "ValueB", B[Value]) )

ถ้าคีย์ชื่อไม่ตรงกัน ให้สร้างคอลัมน์ชื่อเดียวกันก่อนด้วย SELECTCOLUMNS

fx
=Joined (แนวคิด) =
NATURALLEFTOUTERJOIN(
SELECTCOLUMNS(A, "Key", A[CustomerID], "ValueA", A[Value]),
SELECTCOLUMNS(B, "Key", B[CustID], "ValueB", B[Value])
)

ผลลัพธ์ได้ผล join ด้วยคีย์ชื่อเดียวกัน (Key) โดยเก็บทุกแถวฝั่งซ้าย

FAQs

NATURALLEFTOUTERJOIN ใช้คอลัมน์ไหนเป็นคีย์?+

ใช้คอลัมน์ที่มีชื่อเหมือนกันในทั้งสองตารางเป็นคีย์การจับคู่

ถ้าจับคู่ไม่ได้จะเกิดอะไรขึ้น?+

แถวยังคงอยู่เพราะเป็น left join แต่คอลัมน์ที่มาจากตารางขวาจะเป็น BLANK

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ NATURALLEFTOUTERJOIN จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้NATURALLEFTOUTERJOINTable manipulation
Table manipulation (5)
CROSSJOIN

CROSSJOIN สร้างตารางใหม่โดยการรวมแถวทั้งหมดจากตารางที่ระบุ โดยสร้างทุก Combination ที่เป็นไปได้ ผลลัพธ์คือตารางที่มีจำนวนแถวเท่ากับผลคูณของจำนวนแถวของแต่ละตาราง

NATURALINNERJOIN

NATURALINNERJOIN ทำ inner join ระหว่าง LeftTable และ RightTable โดยใช้คอลัมน์ชื่อเดียวกันเป็นคีย์การจับคู่ คืนผลลัพธ์เฉพาะแถวที่จับคู่ได้ทั้งสองตาราง และมักใช้ร่วมกับ SELECTCOLUMNS เพื่อจัดชื่อคอลัมน์ให้ตรงกัน

NATURALJOINUSAGE

NATURALJOINUSAGE ทำให้ table expression ถูกเพิ่มเข้าไปในตัวกรอง (filter context) แบบ natural join โดยจับคู่ตามคอลัมน์ชื่อเดียวกัน เป็นฟังก์ชันที่ออกแบบสำหรับการใช้งานขั้นสูงในโมเดลแบบประกอบ (composite models) และ SUMMARIZECOLUMNS

SELECTCOLUMNS

สร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับและเพิ่มคอลัมน์ที่คำนวณได้ ต่างจาก ADDCOLUMNS ตรงที่ SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ทำให้สามารถปรับโครงสร้างตารางและเลือกข้อมูลที่จำเป็นได้อย่างยืดหยุ่น

SUBSTITUTEWITHINDEX

คืนตารางที่เป็นผลแบบ semi-join ระหว่าง 2 ตาราง พร้อมแทนคอลัมน์ร่วมด้วยดัชนี 0-based ซึ่งคำนวณจากลำดับแถวของตารางอ้างอิงหลังจัดเรียง

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่