ตัวอย่าง การ เปรียบเทียบ สินค้า: นี่คือโพสต์ที่เกี่ยวข้องกับหัวข้อนี้
สำหรับเรื่องการเปรียบเทียบข้อมูล 2 ตารางนี้ เป็นอีกเรื่องที่มีคนถามมาเยอะ แต่ในความเป็นจริงหลักการไม่มีอะไรไปกว่าการใช้สูตรกลุ่มพวก lookup ในการตรวจสอบแค่นั้นเอง
และเพื่อให้มันเจ๋งยิ่งขึ้น ผมจะแสดงวิธีที่ 2 วิธีเลยละกัน นั่นคือ 1. ใช้สูตร 2. ใช้ Power Query
ก่อนอื่น สมมติว่าผมมีข้อมูลดังนี้
Table of Contents
วิธีการใช้สูตรในการเปรียบเทียบข้อมูล
Q1: คนไหนมีชื่ออยู่ทั้ง 2 ตาราง?
หากเราอยากรู้ว่าคนไหนบ้างที่มีชื่ออยู่ใน 2 ตาราง เราจะทำยังไง?
แนวคิดในการเปรียบเทียบข้อมูลก็คือ เราจะหาชื่อในตาราง Math ทีละตัว โดยเอาแต่ละตัววิ่งหาในตาราง Excel ว่าเจอรึเปล่า? ถ้ามันเจอ ก็แปลงว่าตัวนั้นอยู่ทั้ง 2 ตาราง จริงมะ?
ดังนั้นเราจะเขียนสูตรใน D4 เพื่อเอาคะแนนในอีกตารางได้ว่า
=VLOOKUP(B4,G:H,2,FALSE)
ปล. สูตรข้างบนเป็นฉบับคนขี้เกียจ ซึ่งเลือกทั้งคอลัมน์เลย เพื่อนๆ อาจเลือกเฉพาะที่มีข้อมูลก็ได้นะครับ แต่ต้องกดปุ่ม F4 เพื่อ lock table_array ให้อยู่กับที่ด้วยนะ
หาเราอยากให้นับเป็น 0 กับ 1 ว่าเจอหรือไม่? ก็ใช้พวก ISERROR มาดักก็ได้ ถ้าไม่เจอมันจะ Error ก็คือ 0 ถ้าไม่ Error ก็คือ 1 ดังนั้นผมใส่สูตรใน E4 ว่า
=--NOT(ISERROR(D4))
โดยที่ — คือการแปลงค่า TRUE/FALSE ให้เป็น 1 กับ 0 นั่นเอง (จะใช้วิธี *1 ก็ได้)
จริงๆ แค่นี้ก็จบเลย เราไม่จำเป็นต้องไปทำที่อีกตารางนึงแล้ว เพราะคำตอบก็จะเหมือนกัน แต่ถ้าทำก็สามารถใส่สูตรใน I4 เป็นดังนี้
=--NOT(ISERROR(MATCH(G4,B:B,0)))
คราวนี้ผมลองใช้ฟังก์ชัน MATCH บ้าง และรวบสูตรทีเดียวเลย เพราะ MATCH จะทำได้แค่หาเจอรึเปล่า? เอาคะแนนกลับมาไม่ได้ ยกเว้นจะใช้ INDEX ช่วย
สรุปแล้วตัวที่เจอในทั้ง 2 ตาราง ก็คือ B,E,I นั่นเอง (จะทำฝั่งไหนก็คำตอบเหมือนกัน)
ถ้าอยากได้แต่รายการที่เจอทั้งคู่ ก็ใช้วิธี Filter เอาเลข 1 ออกมาจะง่ายที่สุด
ถ้าจะเขียนสูตรก็จะยากกว่ามาก เช่น ใน B17 เขียนว่า
=SMALL(IF(E:E=1,ROW(E:E)),A17) แล้วกด Ctrl+Shift+Enter
เพื่อใช้ว่าแถวที่เจอ Excel =1 อยู่แถวไหนบ้าง เป็นลำดับ 1,2,3…
จากนั้นค่อยใช้ INDEX ถึงค่าที่ต้องการกลับมา เช่น C17 เขียนว่า
=INDEX(B:B,B17)
ซึ่งบางคนยังไม่มีพื้นฐานการเขียนสูตรที่ดีพอ หากให้อธิบายโดยละเอียดคงต้องไว้บทความอื่นๆ
ดังนั้นในบทความนี้ผมจะยังไม่ใช้วิธีเขียนสูตรในการแสดงเฉพาะผลลัพธ์ที่อยากได้นะครับ เพราะมันยากเกินไป ต้องอธิบายหลายเรื่องเลย เช่น Array Formula กว่าจะเข้าใจได้ (แต่เดี๋ยวเราจะแสดงวิธี Power Query ซึ่งเข้าใจง่ายกับคนทั่วไปมากกว่า)
Q2: คนไหนบ้างมีชื่อในตาราง Math แต่ไม่อยู่ใน Excel
อันนี้ก็ง่ายมากเพราะว่าเราก็แค่ไปที่ตาราง Math แล้ว Filter เลือกตัวที่เจอExcel เป็น 0 แค่นั้นเอง
Q3: คนไหนบ้างมีชื่อในตาราง Excel แต่ไม่อยู่ใน Math
อันนี้ก็ง่ายมากเพราะว่าเราก็แค่ไปที่ตาราง Excel แล้ว Filter เลือกตัวที่เจอMath เป็น 0 แค่นั้นเอง
Q4: คนไหนบ้างที่มีชื่อในตารางใดตารางหนึ่ง แต่ไม่ได้อยู่ทั้งสองตาราง
อันนี้เราก็สามารถ Copy ข้อมูลที่ Filter แล้วใน Q3 กับ Q4 มาต่อกันเท่านั้นเอง (ไม่ต้อง REmove Duplicates ด้วย เพราะชื่อก็จะไม่ซ้ำกันอยู่แล้ว จริงมะ?)
ปัญหาของการที่ต้อง Manual Copy
จะเห็นว่าวิธีการใช้สูตร Lookup หาผลลัพธ์ หากอยากจะคัดกรองให้เหลือแค่สิ่งที่ต้องการ ก็ต้องมานั่ง Filter ข้อมูลแล้ว Copy Paste ออกมาซะก่อน ซึ่งวิธีนี้อาจจะเหมาะกับการทำงาน Adhoc ครั้งเดียวจบ
แต่ถ้าเป็นงานที่ต้องทำแบบนี้ประจำๆ แบบงาน Routine การที่ต้องมานั่ง Filter Copy Paste ใหม่ทุกครั้ง ก็จะเสียเวลาและมีโอกาสผิดพลาดเกิดขึ้นมาได้
ดังนั้นเดี๋ยวผมจะแสดงวิธีการใช้ Power Query จัดการเรื่องนี้ ซึ่งเราจะไม่ต้องมานั่ง Copy Paste ข้อมูลอีกต่อไป และก็ไม่เข้าใจยากเท่ากับการเขียนสูตรด้วย (แต่จะมีขั้นตอนในการกดปุ่มเยอะ ถ้ายังไม่คุ้นอาจจะรู้สึกว่ามันเยอะ แต่ตอนทำจริงมันเร็วนะ)
วิธีการใช้ Power Query ในการเปรียบเทียบข้อมูล
ก่อนอื่น ผมขอแปลงข้อมูลของเราเป็น Table ก่อน เพื่อความสะดวกในหลายๆ อย่าง (ถ้าจะไม่แปลงก็ต้องตั้งชื่อให้กับ Range ก่อนเอาเข้า Power Query คล้ายๆ แบบนี้)
โดยผมตั้งชื่อเป็น tblMath กับ tblExcel (ตั้งชื่อที่ละตารางนะ)
จากนั้นก็เอาแต่ละตารางเข้า PowerQuery
จากนั้นกด Close & Load to…
เลือกแบบ Connection Only เพื่อให้อ้างอิงข้อมูลตารางนั้นๆได้ โดยที่ยังไม่เอาผลลัพธ์ออกมาจริงๆ
ทำให้ครบทั้งสองตาราง จะมี List ของ Query ที่ทำไว้อยู่ด้านขวา
คราวนี้เราจะเริ่มทำผลลัพธ์แล้วล่ะ
Q1: คนไหนมีชื่ออยู่ทั้ง 2 ตาราง?
คลิ๊กขวาที่ Query tblMath แล้วเลือก Merge
จากนั้นเลือกว่าจะ Merge กับ tblExcel โดยให้เลือกคอลัมน์ที่เป็นตัวเชื่อมด้วย นั่นก็คือ ชื่อ
โดยให้เลือกวิธี Join Kind (วิธีการ Join) ซึ่งถ้าเป็น Version ใหม่ๆ ที่อัปเดทแล้วจะมีวิธีการ Join เยอะแยะเลย และตัวที่เราจะใช้คือ Inner Join ซึ่งแปลว่าต้องเจอในทั้ง 2 ตาราง (ถ้าใครเป็น version เก่า ไม่มี Dropdown ให้เลือก น่าจะมีให้ติ๊ก only matching row ก็ติ๊กไปครับ)
ผลลัพธ์จะออกมาเป็นคำว่า Table ก่อน ซึ่งเราสามารถกด Expand เอาค่าข้างในออกมาก็ได้ แต่ไม่จำเป็น เพราะจริงๆ เราได้รายการที่เจอทั้ง 2 ตารางแล้ว
เราสามารถลบคอลัมน์อื่น ให้เหลือแค่ชื่ออย่างเดียวก็จบเลย
แต่ถ้าอยากได้คะแนน Excel ออกมาด้วย ก็กดปุ่ม Expand มุมขวาบน แล้วเลือกว่าจะเอาคอลัมน์อะไรจากอีกตารางบ้าง?
พอ ok ก็จะได้ผลลัพธ์เลย
จากนั้นเราตั้งชื่อ Query ด้านขวานิดนึงเพื่อความเรียบร้อย
แล้วกด Close & Load to… ออกมาเป็น Table ในตำแหน่งที่ต้องการได้
พอกด ok ก็จะได้ผลัพธ์เลย
อันนี้จริงๆ ดูเหมือนมีหลาย Step แต่พอกดในการทำงานจริงมันจะเร็วมากนะครับ ต้องลองๆ
Q2: คนไหนบ้างมีชื่อในตาราง Math แต่ไม่อยู่ใน Excel
อันนี้เราทำเหมือน Q1 เลย แต่ว่าเปลี่ยนการ JoinKind ตอน Merge เป็น Left Anti Join ซึ่งแปลว่ามีในตารางแรก แต่ไม่มีในตารางที่สอง
ถ้าใครไม่มี Left Anti ให้เลือก สามารถแก้สูตรจาก Query ใน Q1 จาก JoinKind.Inner ให้เป็น JoinKind.LeftAnti ได้เลย จะได้ผลเหมือนกัน (ตัวพิมพ์เล็กพิมพ์ใหญ่ให้เป๊ะนะ)
ปล. ใน Power Query Editor ของใครไม่มีช่อง Formula bar ขึ้นมาให้ไปติ๊กใน View -> Formula Bar
ซึ่งข้อนี้ผมตั้งชื่อ Query ว่า Q2-OnlyinMath
Q3: คนไหนบ้างมีชื่อในตาราง Excel แต่ไม่อยู่ใน Math
อันนี้ทำได้ 2 แบบ คือ เราทำเหมือน Q2 เลย แต่ให้คลิ๊กขวา Merge ที่ตาราง tblExcel เพื่อให้ tblExcel เป็นตารางหลักแทน
หรือจะทำแบบ Q2 แล้วให้ tblMath เป็นตารางหลักเหมือนเดิม แล้วเปลี่ยน JoinKind เป็น Right Anti ซึ่งแปลว่ามีในตารางที่สองแต่ไม่มีในตารางแรก
ซึ่งเดี๋ยวผมจะแสดงวิธีหลังให้ดู จะได้เห็นตัวอย่างเยอะๆ หลายๆ แบบ
ตอนแรกมันจะขึ้น null เพราะไม่มีในตาราง Math ไง
ให้เราลบคอลัมน์ชื่อกับคะแนนทิ้งไป เพราะไม่ใช้
จากนั้นกด expand table ออกมาให้หมด แต่คราวนี้เราไม่เอาชื่อตารางเป็น prefixแล้ว
จะได้ผลลัพธ์แบบนี้
ซึ่งข้อนี้ผมตั้งชื่อ Query ว่า Q3-OnlyinExcel
Q4: คนไหนบ้างที่มีชื่อในตารางใดตารางหนึ่ง แต่ไม่ได้อยู่ทั้งสองตาราง
ข้อนี้จริงๆ แล้วเราสามารถเอา Q2 กับ Q3 มาต่อตูดกันได้เลย (เรียกว่า Append)
โดยที่คลิ๊กขวาที่ Q2-OnlyinMath แล้วเลือก Append
แล้วก็เลือกว่า Append กับ Q3-OnlyinExcel
จากนั้นเราก็ได้ผลลัพมาเลย!
แต่ถ้าเราอยากบอกด้วยว่าแต่ละบรรทัดมาจากตารางไหน ผมแนะนำให้ไปเพิ่มชื่อตารางเป็นอีกคอลัมน์นึงใน Q2-OnlyinMath และ Q3-OnlyinExcel ซะก่อน ดังนี้
กลับเข้าไป Edit ใน Q2-OnlyinMath ดังนี้ แล้วกด Close & Load
ทำแบบเดียวกันกับ Q3-OnlyinExcel แล้วกด Close & Load
จากนั้นกลับมา Append อีกทีนึง ก็จะมีคอลัมน์ SourceTable โผล่มาละ
และนี่ก็คือภาพรวมผลลัพธ์ทั้งหมด
ข้อมูลเปลี่ยนก็กด Refresh ได้เลย
ซึ่งความดีงามของ Power Query ก็คือ ถ้าข้อมูลต้นทางเปลี่ยนไป เราจะ Refresh ได้เลย
เช่น ผมไปเพิ่ม N 88 ในตารางแรก
แค่ผมไปที่ Data -> Refresh All เท่านั้นจบเลย
Tips : ถ้าคลิ๊กขวา Refresh ที่ตารางผลลัพธ์ มันจะแก้แค่ตารางนั้นอันเดียว ถ้าจะแก้ทุกอันพร้อมกันให้กด Refresh All แบบนี้แหละ
ผลลัพธ์ทุกตารางจะเปลี่ยนไปทันที
เรียงผลลัพธ์ให้สวยงาม
สังเกตว่าตาราง Q4 ยังไม่ได้กด Sort ตามชื่อ (Append มันจะยังไม่ sort) ถ้าจะ sort ก็เข้าไปแก้ใน Q4 แล้วกด Sort ก็จบเลย
พอกด close & load ผลของ Q4 ก็จะมีการเรียงตามชื่อเลย จบ
แถม Q5 : List รายชื่อทั้งหมดเลย แล้วแสดงคะแนนของแต่ละวิชา
หากต้องการ List รายชื่อทั้งหมดจากทั้ง 2 ตาราง เราสามารถทำได้ 2 แบบ คือ
- ใช้การ Merge แบบ Full Outer Join
- Append ข้อมูลก่อนใช้ Left Join 2 ที
Q5.1 : ใช้การ Merge แบบ Full Outer Join
โดยคลิ๊กขวาที่ tblMath แล้วเลือก Merge แบบ Full Outer Join
จะได้ผลลัพธ์ดังนี้
จากนั้นกด Expand ออกมาแบบเอาทุกอย่างเลย
จะได้ผลลัพธ์แบบนี้ ซึ่งจะได้ทุกแถวของทั้ง 2 ตารางมาเลย
จากนั้นเราจะสร้างคอลัมน์ใหม่ โดยเลือกอะไรก็ได้คอลัมน์เดียวก่อน แล้วไปที่แถบ Add Column-> Conditional Column โดยเอาชื่อมารวมกันดังนี้ (ถ้าช่องนั้นว่างให้เอาอีกช่อง ไม่งั้นก็เอาช่องเดิม)
ปล. ใครที่ไม่มี Conditional Column ให้ Add Custom Column แล้วใส่สูตร if เอาเองว่า
if [ชื่อ] = null then [tblExcel.ชื่อ] else [ชื่อ]
จะได้ผลัพธ์แบบนี้เหมือนกัน
จากคลิ๊กคอลัมน์ ชื่อCombine กด Ctrl ค้างไว้แล้วคลิ๊ก คะแนน กับ tblExcel.คะแนน แล้วกดคลิ๊กขวา Remove Other Column
จะได้ผลัพธ์เหลือเฉพาะตัวที่ต้องการเลย
จากนั้น จะ sort หรือเปลี่ยนชื่อคอลัมน์อะไรก็ตามใจนะ เช่น
Q5.1 : Append ข้อมูลก่อนใช้ Left Join 2 ที
อีกวิธีนึงคือเราเอา tblMath กับ Excel Append กันก่อน
จะได้แบบนี้ ซึ่งให้เราลบคอลัมน์คะแนนออกไปก่อน
จากนั้นกด Home -> Remove Rows -> Remove Duplicates เพื่อกำจัดตัวซ้ำ
จากนั้น Merge กับตารางคะแนนแต่ละอันแบบ Left Outer (ยึดฝั่งซ้าย หรือฝั่งบนเป็นหลัก)
อันนี้ Merge กับ tblExcel ก่อน (อะไรก่อนก็ได้)
ต่อไป Merge กับ tblMath
จะได้แบบนี้
จากนั้นกด Expand คะแนนแต่ละอันออกมา
ทำครบทั้ง 2 ตารางก็จะได้แบบนี้เลย
กด Sort ชื่อซะหน่อยก็จบเลย
Close & Load to… Table ออกมาก็ได้ผลเหมือนกันแหละ
จบแล้ววว
และนี่ก็คือ 2 วิธี ในการเทียบข้อมูล 2 ตาราง ว่ามีรายการไหนตรงกัน ไม่ตรงกัน มันยาวมากๆ เลย (มีใครอ่านจบบ้าง comment บอกหน่อยนะ 555)
ใครลองแล้วได้ผลลัพธ์เป็นยังไง ทำได้ไม่ได้ยังไง? Comment บอกได้เลยนะครับ
[NEW] วิธีเปรียบเทียบข้อมูล 2 ตาราง ว่ามีรายการไหนตรงกัน ไม่ตรงกัน? | ตัวอย่าง การ เปรียบเทียบ สินค้า – NATAVIGUIDES
สำหรับเรื่องการเปรียบเทียบข้อมูล 2 ตารางนี้ เป็นอีกเรื่องที่มีคนถามมาเยอะ แต่ในความเป็นจริงหลักการไม่มีอะไรไปกว่าการใช้สูตรกลุ่มพวก lookup ในการตรวจสอบแค่นั้นเอง
และเพื่อให้มันเจ๋งยิ่งขึ้น ผมจะแสดงวิธีที่ 2 วิธีเลยละกัน นั่นคือ 1. ใช้สูตร 2. ใช้ Power Query
ก่อนอื่น สมมติว่าผมมีข้อมูลดังนี้
วิธีการใช้สูตรในการเปรียบเทียบข้อมูล
Q1: คนไหนมีชื่ออยู่ทั้ง 2 ตาราง?
หากเราอยากรู้ว่าคนไหนบ้างที่มีชื่ออยู่ใน 2 ตาราง เราจะทำยังไง?
แนวคิดในการเปรียบเทียบข้อมูลก็คือ เราจะหาชื่อในตาราง Math ทีละตัว โดยเอาแต่ละตัววิ่งหาในตาราง Excel ว่าเจอรึเปล่า? ถ้ามันเจอ ก็แปลงว่าตัวนั้นอยู่ทั้ง 2 ตาราง จริงมะ?
ดังนั้นเราจะเขียนสูตรใน D4 เพื่อเอาคะแนนในอีกตารางได้ว่า
=VLOOKUP(B4,G:H,2,FALSE)
ปล. สูตรข้างบนเป็นฉบับคนขี้เกียจ ซึ่งเลือกทั้งคอลัมน์เลย เพื่อนๆ อาจเลือกเฉพาะที่มีข้อมูลก็ได้นะครับ แต่ต้องกดปุ่ม F4 เพื่อ lock table_array ให้อยู่กับที่ด้วยนะ
หาเราอยากให้นับเป็น 0 กับ 1 ว่าเจอหรือไม่? ก็ใช้พวก ISERROR มาดักก็ได้ ถ้าไม่เจอมันจะ Error ก็คือ 0 ถ้าไม่ Error ก็คือ 1 ดังนั้นผมใส่สูตรใน E4 ว่า
=--NOT(ISERROR(D4))
โดยที่ — คือการแปลงค่า TRUE/FALSE ให้เป็น 1 กับ 0 นั่นเอง (จะใช้วิธี *1 ก็ได้)
จริงๆ แค่นี้ก็จบเลย เราไม่จำเป็นต้องไปทำที่อีกตารางนึงแล้ว เพราะคำตอบก็จะเหมือนกัน แต่ถ้าทำก็สามารถใส่สูตรใน I4 เป็นดังนี้
=--NOT(ISERROR(MATCH(G4,B:B,0)))
คราวนี้ผมลองใช้ฟังก์ชัน MATCH บ้าง และรวบสูตรทีเดียวเลย เพราะ MATCH จะทำได้แค่หาเจอรึเปล่า? เอาคะแนนกลับมาไม่ได้ ยกเว้นจะใช้ INDEX ช่วย
สรุปแล้วตัวที่เจอในทั้ง 2 ตาราง ก็คือ B,E,I นั่นเอง (จะทำฝั่งไหนก็คำตอบเหมือนกัน)
ถ้าอยากได้แต่รายการที่เจอทั้งคู่ ก็ใช้วิธี Filter เอาเลข 1 ออกมาจะง่ายที่สุด
ถ้าจะเขียนสูตรก็จะยากกว่ามาก เช่น ใน B17 เขียนว่า
=SMALL(IF(E:E=1,ROW(E:E)),A17) แล้วกด Ctrl+Shift+Enter
เพื่อใช้ว่าแถวที่เจอ Excel =1 อยู่แถวไหนบ้าง เป็นลำดับ 1,2,3…
จากนั้นค่อยใช้ INDEX ถึงค่าที่ต้องการกลับมา เช่น C17 เขียนว่า
=INDEX(B:B,B17)
ซึ่งบางคนยังไม่มีพื้นฐานการเขียนสูตรที่ดีพอ หากให้อธิบายโดยละเอียดคงต้องไว้บทความอื่นๆ
ดังนั้นในบทความนี้ผมจะยังไม่ใช้วิธีเขียนสูตรในการแสดงเฉพาะผลลัพธ์ที่อยากได้นะครับ เพราะมันยากเกินไป ต้องอธิบายหลายเรื่องเลย เช่น Array Formula กว่าจะเข้าใจได้ (แต่เดี๋ยวเราจะแสดงวิธี Power Query ซึ่งเข้าใจง่ายกับคนทั่วไปมากกว่า)
Q2: คนไหนบ้างมีชื่อในตาราง Math แต่ไม่อยู่ใน Excel
อันนี้ก็ง่ายมากเพราะว่าเราก็แค่ไปที่ตาราง Math แล้ว Filter เลือกตัวที่เจอExcel เป็น 0 แค่นั้นเอง
Q3: คนไหนบ้างมีชื่อในตาราง Excel แต่ไม่อยู่ใน Math
อันนี้ก็ง่ายมากเพราะว่าเราก็แค่ไปที่ตาราง Excel แล้ว Filter เลือกตัวที่เจอMath เป็น 0 แค่นั้นเอง
Q4: คนไหนบ้างที่มีชื่อในตารางใดตารางหนึ่ง แต่ไม่ได้อยู่ทั้งสองตาราง
อันนี้เราก็สามารถ Copy ข้อมูลที่ Filter แล้วใน Q3 กับ Q4 มาต่อกันเท่านั้นเอง (ไม่ต้อง REmove Duplicates ด้วย เพราะชื่อก็จะไม่ซ้ำกันอยู่แล้ว จริงมะ?)
ปัญหาของการที่ต้อง Manual Copy
จะเห็นว่าวิธีการใช้สูตร Lookup หาผลลัพธ์ หากอยากจะคัดกรองให้เหลือแค่สิ่งที่ต้องการ ก็ต้องมานั่ง Filter ข้อมูลแล้ว Copy Paste ออกมาซะก่อน ซึ่งวิธีนี้อาจจะเหมาะกับการทำงาน Adhoc ครั้งเดียวจบ
แต่ถ้าเป็นงานที่ต้องทำแบบนี้ประจำๆ แบบงาน Routine การที่ต้องมานั่ง Filter Copy Paste ใหม่ทุกครั้ง ก็จะเสียเวลาและมีโอกาสผิดพลาดเกิดขึ้นมาได้
ดังนั้นเดี๋ยวผมจะแสดงวิธีการใช้ Power Query จัดการเรื่องนี้ ซึ่งเราจะไม่ต้องมานั่ง Copy Paste ข้อมูลอีกต่อไป และก็ไม่เข้าใจยากเท่ากับการเขียนสูตรด้วย (แต่จะมีขั้นตอนในการกดปุ่มเยอะ ถ้ายังไม่คุ้นอาจจะรู้สึกว่ามันเยอะ แต่ตอนทำจริงมันเร็วนะ)
วิธีการใช้ Power Query ในการเปรียบเทียบข้อมูล
ก่อนอื่น ผมขอแปลงข้อมูลของเราเป็น Table ก่อน เพื่อความสะดวกในหลายๆ อย่าง (ถ้าจะไม่แปลงก็ต้องตั้งชื่อให้กับ Range ก่อนเอาเข้า Power Query คล้ายๆ แบบนี้)
โดยผมตั้งชื่อเป็น tblMath กับ tblExcel (ตั้งชื่อที่ละตารางนะ)
จากนั้นก็เอาแต่ละตารางเข้า PowerQuery
จากนั้นกด Close & Load to…
เลือกแบบ Connection Only เพื่อให้อ้างอิงข้อมูลตารางนั้นๆได้ โดยที่ยังไม่เอาผลลัพธ์ออกมาจริงๆ
ทำให้ครบทั้งสองตาราง จะมี List ของ Query ที่ทำไว้อยู่ด้านขวา
คราวนี้เราจะเริ่มทำผลลัพธ์แล้วล่ะ
Q1: คนไหนมีชื่ออยู่ทั้ง 2 ตาราง?
คลิ๊กขวาที่ Query tblMath แล้วเลือก Merge
จากนั้นเลือกว่าจะ Merge กับ tblExcel โดยให้เลือกคอลัมน์ที่เป็นตัวเชื่อมด้วย นั่นก็คือ ชื่อ
โดยให้เลือกวิธี Join Kind (วิธีการ Join) ซึ่งถ้าเป็น Version ใหม่ๆ ที่อัปเดทแล้วจะมีวิธีการ Join เยอะแยะเลย และตัวที่เราจะใช้คือ Inner Join ซึ่งแปลว่าต้องเจอในทั้ง 2 ตาราง (ถ้าใครเป็น version เก่า ไม่มี Dropdown ให้เลือก น่าจะมีให้ติ๊ก only matching row ก็ติ๊กไปครับ)
ผลลัพธ์จะออกมาเป็นคำว่า Table ก่อน ซึ่งเราสามารถกด Expand เอาค่าข้างในออกมาก็ได้ แต่ไม่จำเป็น เพราะจริงๆ เราได้รายการที่เจอทั้ง 2 ตารางแล้ว
เราสามารถลบคอลัมน์อื่น ให้เหลือแค่ชื่ออย่างเดียวก็จบเลย
แต่ถ้าอยากได้คะแนน Excel ออกมาด้วย ก็กดปุ่ม Expand มุมขวาบน แล้วเลือกว่าจะเอาคอลัมน์อะไรจากอีกตารางบ้าง?
พอ ok ก็จะได้ผลลัพธ์เลย
จากนั้นเราตั้งชื่อ Query ด้านขวานิดนึงเพื่อความเรียบร้อย
แล้วกด Close & Load to… ออกมาเป็น Table ในตำแหน่งที่ต้องการได้
พอกด ok ก็จะได้ผลัพธ์เลย
อันนี้จริงๆ ดูเหมือนมีหลาย Step แต่พอกดในการทำงานจริงมันจะเร็วมากนะครับ ต้องลองๆ
Q2: คนไหนบ้างมีชื่อในตาราง Math แต่ไม่อยู่ใน Excel
อันนี้เราทำเหมือน Q1 เลย แต่ว่าเปลี่ยนการ JoinKind ตอน Merge เป็น Left Anti Join ซึ่งแปลว่ามีในตารางแรก แต่ไม่มีในตารางที่สอง
ถ้าใครไม่มี Left Anti ให้เลือก สามารถแก้สูตรจาก Query ใน Q1 จาก JoinKind.Inner ให้เป็น JoinKind.LeftAnti ได้เลย จะได้ผลเหมือนกัน (ตัวพิมพ์เล็กพิมพ์ใหญ่ให้เป๊ะนะ)
ปล. ใน Power Query Editor ของใครไม่มีช่อง Formula bar ขึ้นมาให้ไปติ๊กใน View -> Formula Bar
ซึ่งข้อนี้ผมตั้งชื่อ Query ว่า Q2-OnlyinMath
Q3: คนไหนบ้างมีชื่อในตาราง Excel แต่ไม่อยู่ใน Math
อันนี้ทำได้ 2 แบบ คือ เราทำเหมือน Q2 เลย แต่ให้คลิ๊กขวา Merge ที่ตาราง tblExcel เพื่อให้ tblExcel เป็นตารางหลักแทน
หรือจะทำแบบ Q2 แล้วให้ tblMath เป็นตารางหลักเหมือนเดิม แล้วเปลี่ยน JoinKind เป็น Right Anti ซึ่งแปลว่ามีในตารางที่สองแต่ไม่มีในตารางแรก
ซึ่งเดี๋ยวผมจะแสดงวิธีหลังให้ดู จะได้เห็นตัวอย่างเยอะๆ หลายๆ แบบ
ตอนแรกมันจะขึ้น null เพราะไม่มีในตาราง Math ไง
ให้เราลบคอลัมน์ชื่อกับคะแนนทิ้งไป เพราะไม่ใช้
จากนั้นกด expand table ออกมาให้หมด แต่คราวนี้เราไม่เอาชื่อตารางเป็น prefixแล้ว
จะได้ผลลัพธ์แบบนี้
ซึ่งข้อนี้ผมตั้งชื่อ Query ว่า Q3-OnlyinExcel
Q4: คนไหนบ้างที่มีชื่อในตารางใดตารางหนึ่ง แต่ไม่ได้อยู่ทั้งสองตาราง
ข้อนี้จริงๆ แล้วเราสามารถเอา Q2 กับ Q3 มาต่อตูดกันได้เลย (เรียกว่า Append)
โดยที่คลิ๊กขวาที่ Q2-OnlyinMath แล้วเลือก Append
แล้วก็เลือกว่า Append กับ Q3-OnlyinExcel
จากนั้นเราก็ได้ผลลัพมาเลย!
แต่ถ้าเราอยากบอกด้วยว่าแต่ละบรรทัดมาจากตารางไหน ผมแนะนำให้ไปเพิ่มชื่อตารางเป็นอีกคอลัมน์นึงใน Q2-OnlyinMath และ Q3-OnlyinExcel ซะก่อน ดังนี้
กลับเข้าไป Edit ใน Q2-OnlyinMath ดังนี้ แล้วกด Close & Load
ทำแบบเดียวกันกับ Q3-OnlyinExcel แล้วกด Close & Load
จากนั้นกลับมา Append อีกทีนึง ก็จะมีคอลัมน์ SourceTable โผล่มาละ
และนี่ก็คือภาพรวมผลลัพธ์ทั้งหมด
ข้อมูลเปลี่ยนก็กด Refresh ได้เลย
ซึ่งความดีงามของ Power Query ก็คือ ถ้าข้อมูลต้นทางเปลี่ยนไป เราจะ Refresh ได้เลย
เช่น ผมไปเพิ่ม N 88 ในตารางแรก
แค่ผมไปที่ Data -> Refresh All เท่านั้นจบเลย
Tips : ถ้าคลิ๊กขวา Refresh ที่ตารางผลลัพธ์ มันจะแก้แค่ตารางนั้นอันเดียว ถ้าจะแก้ทุกอันพร้อมกันให้กด Refresh All แบบนี้แหละ
ผลลัพธ์ทุกตารางจะเปลี่ยนไปทันที
เรียงผลลัพธ์ให้สวยงาม
สังเกตว่าตาราง Q4 ยังไม่ได้กด Sort ตามชื่อ (Append มันจะยังไม่ sort) ถ้าจะ sort ก็เข้าไปแก้ใน Q4 แล้วกด Sort ก็จบเลย
พอกด close & load ผลของ Q4 ก็จะมีการเรียงตามชื่อเลย จบ
แถม Q5 : List รายชื่อทั้งหมดเลย แล้วแสดงคะแนนของแต่ละวิชา
หากต้องการ List รายชื่อทั้งหมดจากทั้ง 2 ตาราง เราสามารถทำได้ 2 แบบ คือ
- ใช้การ Merge แบบ Full Outer Join
- Append ข้อมูลก่อนใช้ Left Join 2 ที
Q5.1 : ใช้การ Merge แบบ Full Outer Join
โดยคลิ๊กขวาที่ tblMath แล้วเลือก Merge แบบ Full Outer Join
จะได้ผลลัพธ์ดังนี้
จากนั้นกด Expand ออกมาแบบเอาทุกอย่างเลย
จะได้ผลลัพธ์แบบนี้ ซึ่งจะได้ทุกแถวของทั้ง 2 ตารางมาเลย
จากนั้นเราจะสร้างคอลัมน์ใหม่ โดยเลือกอะไรก็ได้คอลัมน์เดียวก่อน แล้วไปที่แถบ Add Column-> Conditional Column โดยเอาชื่อมารวมกันดังนี้ (ถ้าช่องนั้นว่างให้เอาอีกช่อง ไม่งั้นก็เอาช่องเดิม)
ปล. ใครที่ไม่มี Conditional Column ให้ Add Custom Column แล้วใส่สูตร if เอาเองว่า
if [ชื่อ] = null then [tblExcel.ชื่อ] else [ชื่อ]
จะได้ผลัพธ์แบบนี้เหมือนกัน
จากคลิ๊กคอลัมน์ ชื่อCombine กด Ctrl ค้างไว้แล้วคลิ๊ก คะแนน กับ tblExcel.คะแนน แล้วกดคลิ๊กขวา Remove Other Column
จะได้ผลัพธ์เหลือเฉพาะตัวที่ต้องการเลย
จากนั้น จะ sort หรือเปลี่ยนชื่อคอลัมน์อะไรก็ตามใจนะ เช่น
Q5.1 : Append ข้อมูลก่อนใช้ Left Join 2 ที
อีกวิธีนึงคือเราเอา tblMath กับ Excel Append กันก่อน
จะได้แบบนี้ ซึ่งให้เราลบคอลัมน์คะแนนออกไปก่อน
จากนั้นกด Home -> Remove Rows -> Remove Duplicates เพื่อกำจัดตัวซ้ำ
จากนั้น Merge กับตารางคะแนนแต่ละอันแบบ Left Outer (ยึดฝั่งซ้าย หรือฝั่งบนเป็นหลัก)
อันนี้ Merge กับ tblExcel ก่อน (อะไรก่อนก็ได้)
ต่อไป Merge กับ tblMath
จะได้แบบนี้
จากนั้นกด Expand คะแนนแต่ละอันออกมา
ทำครบทั้ง 2 ตารางก็จะได้แบบนี้เลย
กด Sort ชื่อซะหน่อยก็จบเลย
Close & Load to… Table ออกมาก็ได้ผลเหมือนกันแหละ
จบแล้ววว
และนี่ก็คือ 2 วิธี ในการเทียบข้อมูล 2 ตาราง ว่ามีรายการไหนตรงกัน ไม่ตรงกัน มันยาวมากๆ เลย (มีใครอ่านจบบ้าง comment บอกหน่อยนะ 555)
ใครลองแล้วได้ผลลัพธ์เป็นยังไง ทำได้ไม่ได้ยังไง? Comment บอกได้เลยนะครับ
เกร็ดความรู้คู่ออฟฟิต | EP.10 SWOT การเปรียบเทียบสมรรถนะ | instant knowledge
ขอบคุณทุกท่านที่ติดตามรับชมคลิปของ Instant knowledge หวังว่าการทำคลิปนี้คงจะเป็นประโยชน์ต่อการทำงานของเพื่อนๆไม่มากก็น้อย จุดประสงค์ของการทำคลิปของดิ๊ฟ คืออยากให้เพื่อนๆ มีความสุขกับการทำระบบ ทำกิจกรรมในองค์กรของท่าน ด้วยความเข้าใจ
ฝากติดตามช่องทางเพิ่มเติม ทาง facebook fanpage https://www.facebook.com/instantknowledgeofficial/
Line @ @instantknowledgeofficial
ยินดีจัดอบรมสัมมนา แบบรูปแบบใหม่ อบรมด้วยความสุข เสียงหัวเราะ และได้ผลงานไปใช้จริงๆ ทั้งในส่วนของ ISO9001 , IATF16949 , core tools , ISO14001 , ISO45001 , Internal audit , 5ส , QCC , TPM , cost reduction etc. Learn \u0026 Plearn Training for ISO and other activity
ติดต่อเบอร์ 0828255353 (เลขา)
อย่าลืมกดติดตาม กดกระดิ่งเพื่อไม่พลาดข้อมูลดีๆนะคะ
===========================
===========================
เมื่อคุณกำลังมองหา
วิทยากรสายฮา
วิทยากร พูดบรรยาย ได้ น่าฟัง
วิทยากรตลก
วิทยากรพูดน่าฟังมาก
คิดถึงดิ๊ฟ
สนใจติดต่ออบรม อบรม ออนไลน์ การฝึกอบรมหลักสูตรเพื่อการพัฒนาองค์กร อบรม หัวหน้างาน อบรม เอ็นเทรนนิ่ง อบรม สัมมนา ในรูปที่ไม่น่าเบื่อผ่านการกระตุ้นให้เรียนรู้ด้วยกิจกรรม
iso 9001 version 2015 ไทย
iso 14001 version 2015 ไทย
iatf 16949 คืออะไร
iatf 16949 vs iso9001
iatf 16949 core tools
iso 45001 version 2018 ( iso 45001 ระบบการจัดการอาชีวอนามัยและความปลอดภัย)
iso 17025 version 2017
internal audit iso 9001 version 2015 ( ตรวจติดตามภายใน iso 9001 )
internal audit iso 14001
gmp haccp
ประเมินความเสี่ยง iso 9001
ประเมินความเสี่ยง iso 45001
ประเมินความเสี่ยง 17025
ดัชนีชี้วัด kpi key performance indicator
ประเมิน aspect 14001
บริบทองค์กร
core tools iatf 16949 มีอะไรบ้าง
apqp automotive
fmea vda training
control plan
ppap
spc คืออะไร
msa training
swot analysis คือ
qc 7 tools
kaizen games for training
kaizen โรงงานอุตสาหกรรม
action plan ทำอย่างไร
lean คือ
bsc คือ
risk assessment iso 9001
การควบคุมเอกสารในระบบการจัดการ (document control)
why why analysis ตัวอย่าง
qcc training
iso 13485 ภาษาไทย
5 ส ในโรงงาน
tpm total productive maintenance
csr คือ
corrective action and preventive action
การจัดการความรู้ (knowledge management)
การจัดการคุณภาพ
การจัดการความเสี่ยง
จิตสำนึกคุณภาพ
จิตสำนึกความปลอดภัย
vda6.3 process audit
มาตรฐาน iso คืออะไร
okr คืออะไร
okr vs kpi
train the trainer
ความสูญเสีย 7 ประการ
8d report training
ช่องทางการติดต่อ inhouse training , online training หรืองานที่ปรึกษา สอบถามข้อมูลเพิ่มเติม ที่ [email protected] หรือ โทร 0828255353
นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูเพิ่มเติม
บทอาขยานวิชาเหมือนสินค้า – สื่อการเรียนการสอน ภาษาไทย ป.5
สื่อการเรียนการสอน วิชา ภาษาไทย ระดับชั้น ประถมศึกษาปีที่ 5
เรื่อง บทอาขยานวิชาเหมือนสินค้า
สื่อการสอน ระดับชั้น ประถมศึกษาปีที่ 5
ประกอบไปด้วยทั้งหมด 5 กลุ่มสาระวิชา
1. กลุ่มสาระการเรียนรู้ วิชาภาษาไทย
2. กลุ่มสาระการเรียนรู้ วิชาภาษาต่างประเทศ (ภาษาอังกฤษ)
3. กลุ่มสาระการเรียนรู้ วิชาคณิตศาสตร์
4. กลุ่มสาระการเรียนรู้ วิชาสังคมศึกษา ศาสนา และวัฒนธรรม
5. กลุ่มสาระการเรียนรู้ วิชาวิทยาศาสตร์
ท่านสามารถติดตาม สื่อการเรียนการสอน
\”ครูโอ๋ สื่อการเรียนการสอน\” ได้อีกหลายช่องทาง
webpage : http://www.kruao.com (ครูโอ๋)
fanpage : https://goo.gl/O22C3X
google+ : https://goo.gl/OBu7ia
youtube : https://goo.gl/bZlYwE
twitter : https://goo.gl/yHzunt
ฝากติดตามเพจ channel website ด้วยครับเพื่อพบกับ
สื่อการเรียนการสอน ที่เราอัพเดทให้ใหม่ๆ ตลอดฟรีๆ
สื่อการสอนนี้นำมาจาก
โครงการแท็บเล็ตพีซีเพื่อการศึกษาไทย
(OTPC : One Tablet Per Child)
จัดทำโดยสำนักงานเทคโนโลยีเพื่อการเรียนการสอน
สำนักงานคณะกรรมการการศึกษาขั้นพื้นฐาน
เรียนภาษาไทย สื่อการสอนไทย ครูโอ๋ สื่อการเรียนการสอน
เรียนภาษาไทยด้วยตนเอง อ่านออกเขียนได้ คำศัพท์ภาษาไทย ไทยป5 สอนภาษาไทย สื่อการสอนป5
EP.885 SETรอจุดเปลี่ยน….สัญญาญกลับตัว!!! By Stocksignal (15-11-21)
EP.885 SETรอจุดเปลี่ยน….สัญญาญกลับตัว!!! By Stocksignal (151121)
ฝากกดติดตามกันได้ที่ Facebook Live หรือ Youtube คลิก subscribe https://bls.tips/subscribeYoutube เพื่อรับชมวีดีโอก่อนใครนะคะ 🙂
สนใจเปิดบัญชีหุ้นออนไลน์ ไม่ต้องส่งเอกสาร ได้ที่ https://bls.tips/FBTeam
อ่านวิธีการเปิดบัญชีคลิก https://bls.tips/openaccountonline
StockSignal TradeMaster AutoTrade SETIndex
BLS หลักทรัพย์บัวหลวง
เข้าใจเรื่อง Product Positioning
การทำ Product Positioning คืออะไร? เขาทำไปเพื่ออะไร? มีอะไรบ้างที่สำคัญ?
กฎอุปสงค์ – กฎอุปทาน#เศรษฐศาสตร์#ครูลูกปลาฟิชชี่
นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูวิธีอื่นๆLEARN FOREIGN LANGUAGE
ขอบคุณที่รับชมกระทู้ครับ ตัวอย่าง การ เปรียบเทียบ สินค้า