:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

#1

Post by Totem »

:D เรียนอาจารย์และเพื่อนสมาชิก

อยากจะทราบการเคลื่อนย้าย เปลี่ยนตำแหน่ง ย้ายตำแหน่ง ย้ายแผนก เปลียนเลขที่พนักงาน รับคนใหม่เข้าทำงาน ลาออก ฯ
ซึ่งมีรายงานที่สร้างไว้ 3 sheet แต่เมื่อมีการเปลี่ยนแปลงพนักงานทั้งหมดใน 3 sheet จะพิจารณาได้จาก sheetข้อมูล ที่ดึงข้อมูลมาจากระบบ
เป็นข้อมูลปัจจุบัน ปัญหาคือ เราต้องมาพิจารณาว่า รายงานที่สร้างไว้ 3 sheet มีใครบ้างที่เปลี่ยนแปลงไป

ขออธิบายดังนี้
ใน sheet1 , 2 , 3 เป็น sheet รายงานที่แยก sheet กัน
และมีชื่อ สกุล ตำแหน่ง เลขที่
เมือเราดึงข้อมูลออกมาจากระบบ อยู่ใน sheet ข้อมูล
ซึ่งจะเป็นข้อมูลที่เป็นปัจจุบันในทุก ๆ ครั้ง ที่มีการดึงข้อมูลและ
มีการเคลื่อนไหวของคนทำงาน
เช่น มีการย้ายแผนก ย้ายเลขที่ตำแหน่ง หรือลาออก รับคนใหม่เข้าทำงาน
ลาออกแล้วยังไม่ได้รับคนใหม่เข้ามา มีการเพิ่มตำแหน่งขึ้นใหม่ ฯ
ตัวอย่าง
ใน sheet ข้อมูล แถวที่ 15 มีการกำหนดตำแหน่งขึ้นมาใหม่ และรับคนใหม่มาแล้ว
แต่ยังไม่มีใน sheet1 , 2 , 3 ก็ให้ไปแสดงรายการใน sheet ไม่ตรงในsheetข้อมูล
อยู่ใน column H ถึง J H5 ถึง K5
ตัวอย่าง
ใน sheet ข้อมูล แถวที่ 17 มีการย้ายแผนก เลขที่พนักงานเปลี่ยน
เป็นพนักงานคนเดิม เปลี่ยนตำแหน่ง และ เลขที่พนักงาน
เดิมเป็นพนักงานบัญชี เลขที่ 700
เปลี่ยนเป็นพนักงานประจำศูนย์ เลขที่ 222
ให้ข้อมูลใน sheet 3 ไปแสดงรายการใน sheet ไม่ตรงในsheetข้อมูล
อยู่ใน column A ถึง D A6 ถึง D6
และใน sheetข้อมูล แถวที่ 17 ไปแสดงรายการใน sheet ไม่ตรงในsheetข้อมูล
อยู่ใน column H ถึง J H7 ถึง K7

สรุป ข้อมูลคนใน sheet 1 , 2 , 3 เปรียบเทียบกับ sheetข้อมูล ที่ดึงมาจากระบบ
แล้วมีความแตกต่างกันทั้งsheet 1 , 2 , 3 และ sheetข้อมูล
ให้ไปแสดงรายการใน sheetไม่ตรงในsheetข้อมูล


ขอบคุณครับ

เทียบ sheet.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31076
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

#2

Post by snasui »

:D การเปรียบเทียบข้อมูลควรทำให้ง่ายลงด้วยการนำ Sheet1 - Sheet3 มาต่อกันในชีตเดียว การที่แยกออกเป็น Sheet1 - Sheet3 ได้แสดงว่าจะต้องมีสิ่งที่ใช้แยก ให้เพิ่มสิ่งนั้นมาเป็นอีกคอลัมน์เพื่อกำกับข้อมูลในแต่ละชีต สมมุติสิ่งที่ใช้แยกข้อมูลออกเป็นชีตเรียกว่า Group และเพิ่มอีกคอลัมน์เพื่อจะบอกว่าชุดข้อมูลนี้เป็นข้อมูล A ส่วนข้อมูลที่ดึงมาจากระบบให้เป็นข้อมูล B

ข้อมูลที่ดึงมาจากระบบเองก็ต้องแยกเป็น Group ออกมาได้เช่นกันเพื่อให้สอดคล้องกับข้อมูลใน Sheet1 - Sheet3

การเปรียบเทียบคือให้นำข้อมูล A และข้อมูล B มาต่อกันแล้วทำ PivotTable หากข้อแตกต่างจะได้ไม่ต้องใช้ความพยายามมากนักครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

#3

Post by Totem »

snasui wrote: Tue Jul 13, 2021 8:23 pm :D การเปรียบเทียบข้อมูลควรทำให้ง่ายลงด้วยการนำ Sheet1 - Sheet3 มาต่อกันในชีตเดียว การที่แยกออกเป็น Sheet1 - Sheet3 ได้แสดงว่าจะต้องมีสิ่งที่ใช้แยก ให้เพิ่มสิ่งนั้นมาเป็นอีกคอลัมน์เพื่อกำกับข้อมูลในแต่ละชีต สมมุติสิ่งที่ใช้แยกข้อมูลออกเป็นชีตเรียกว่า Group และเพิ่มอีกคอลัมน์เพื่อจะบอกว่าชุดข้อมูลนี้เป็นข้อมูล A ส่วนข้อมูลที่ดึงมาจากระบบให้เป็นข้อมูล B

ข้อมูลที่ดึงมาจากระบบเองก็ต้องแยกเป็น Group ออกมาได้เช่นกันเพื่อให้สอดคล้องกับข้อมูลใน Sheet1 - Sheet3

การเปรียบเทียบคือให้นำข้อมูล A และข้อมูล B มาต่อกันแล้วทำ PivotTable หากข้อแตกต่างจะได้ไม่ต้องใช้ความพยายามมากนักครับ

:D Sheet1 - Sheet3 เป็นการจัดทำขึ้นมาโดยจับแยกเองตามระดับหรือแผนกขึ้นมาเพื่อส่งรายงานในแต่ละปี และในปีต่อๆไปต้องนำคนเข้าคนออกให้เป็นปัจจุบัน เพื่อทำส่งปีถัดไป ตามที่อาจารย์แนะนำ ผมต้องนำ Sheet1 - Sheet3 มารวมใหม่ในอีก sheet แล้ว ไปเปรียบเทียบกับ ข้อมูลที่ดึงมาจากระบบ
ที่ยังไม่เข้าใจคือ ให้เพิ่มสิ่งนั้นมาเป็นอีกคอลัมน์เพื่อกำกับข้อมูลในแต่ละชีต สมมุติสิ่งที่ใช้แยกข้อมูลออกเป็นชีตเรียกว่า Group และเพิ่มอีกคอลัมน์เพื่อจะบอกว่าชุดข้อมูลนี้เป็นข้อมูล A ส่วนข้อมูลที่ดึงมาจากระบบให้เป็นข้อมูล B


ขอบคุณครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

#4

Post by Totem »

:D ถ้าหากจะปรับเป็นวิธีการใหม่
ขออธิบายดังนี้
ผมนำข้อมูลจาก sheet1 , 2 , 3 โดยใช้สูตรมาวางไว้ sheet 4 ที column A ถึง N แล้ว

นำข้อมูลทีดึงได้จากระะบบมาวางไว้ที่ column P ถึง S

จากนั้นนำข้อมูล column A ถึง N เปรียบเทียบ column P ถึง S หาว่าแตกต่างกัน
ให้มาแสดงที่ column V ถึง Y
ตัวอย่าง ที่ต่างกันคือ
เลขที่ ชื่อ สกุล ระดับ
123 xyz xxx zyz1

หรือถ้าหากนำข้อมูลใน column A ถึง N มาวางเรียงต่อกัน ไม่แยกระดับก็ได้ครับ ผมต้องใช้สูตรอย่างไร

ขอบคุณครับ

เปรียบเทียบชื่อ ตำแหน่ง เลขที่.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31076
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

#5

Post by snasui »

:D ค่อย ๆ ถามตอบกันไป ผมยังไม่เห็นความจำเป็นของการแยกเป็นรายชีตแล้วค่อยมาสรุปรวมหาสิ่งที่ต้องการครับ

จากสิ่งที่ผมเขียนไปด้านล่าง
snasui wrote: Tue Jul 13, 2021 8:23 pm การที่แยกออกเป็น Sheet1 - Sheet3 ได้แสดงว่าจะต้องมีสิ่งที่ใช้แยก ให้เพิ่มสิ่งนั้นมาเป็นอีกคอลัมน์เพื่อกำกับข้อมูลในแต่ละชีต สมมุติสิ่งที่ใช้แยกข้อมูลออกเป็นชีตเรียกว่า Group
และสิ่งที่อธิบายมาตามด้านล่าง
Totem wrote: Wed Jul 14, 2021 9:18 am Sheet1 - Sheet3 เป็นการจัดทำขึ้นมาโดยจับแยกเองตามระดับหรือแผนกขึ้นมาเพื่อส่งรายงานในแต่ละปี และในปีต่อๆไปต้องนำคนเข้าคนออกให้เป็นปัจจุบัน
เพราะฉะนั้น สิ่งที่ใช้แยกที่ผมพูดถึงคือ ระดับ หรือ แผนก ครับ

ข้อมูลจากระบบก็จะต้องแยกเป็น ระดับ หรือ แผนก ได้เช่นกันจึงจะนำมาเปรียบเทียบกันได้

เมื่อนำข้อมูลทั้งสองชุดมาต่อกันก็จะต้องมีคอลัมน์ใดคอลัมน์หนึ่งที่ระบุว่า ข้อนี้เป็นข้อมูลจากระบบ ข้อมูลนี้เป็นข้อมูลจากผู้ใช้ เมื่อทำเป็นรายงาน ดังเช่น PivotTable จะได้เปรียบเทียบกันได้สะดวก

การที่นำมาข้อมูลมาต่อกันเป็นฐานข้อมูลแล้วค่อยนำไปใช้จะทำให้สะดวก ไม่ว่าจะแค่ทำการจัดเรียง การกรอง หรือนำข้อมูลไปทำรายงานต่าง ๆ เช่นเปรียบเทียบเป็นรายงวด หาแนวโน้ม ฯลฯ

สังเกตได้ว่า Tools สำคัญ ๆ ที่ Microsoft สร้างขึ้นเช่น Power Query ก็เพื่อสะดวกต่อการนำข้อมูลจากแหล่งต่าง ๆ มาแปลงให้เป็นฐานข้อมูล เพื่อให้นำข้อมูลนั้นไปใช้งานต่อได้โดยง่ายครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

#6

Post by Totem »

snasui wrote: Wed Jul 14, 2021 11:02 pm :D ค่อย ๆ ถามตอบกันไป ผมยังไม่เห็นความจำเป็นของการแยกเป็นรายชีตแล้วค่อยมาสรุปรวมหาสิ่งที่ต้องการครับ

จากสิ่งที่ผมเขียนไปด้านล่าง
snasui wrote: Tue Jul 13, 2021 8:23 pm การที่แยกออกเป็น Sheet1 - Sheet3 ได้แสดงว่าจะต้องมีสิ่งที่ใช้แยก ให้เพิ่มสิ่งนั้นมาเป็นอีกคอลัมน์เพื่อกำกับข้อมูลในแต่ละชีต สมมุติสิ่งที่ใช้แยกข้อมูลออกเป็นชีตเรียกว่า Group
และสิ่งที่อธิบายมาตามด้านล่าง
Totem wrote: Wed Jul 14, 2021 9:18 am Sheet1 - Sheet3 เป็นการจัดทำขึ้นมาโดยจับแยกเองตามระดับหรือแผนกขึ้นมาเพื่อส่งรายงานในแต่ละปี และในปีต่อๆไปต้องนำคนเข้าคนออกให้เป็นปัจจุบัน
เพราะฉะนั้น สิ่งที่ใช้แยกที่ผมพูดถึงคือ ระดับ หรือ แผนก ครับ

ข้อมูลจากระบบก็จะต้องแยกเป็น ระดับ หรือ แผนก ได้เช่นกันจึงจะนำมาเปรียบเทียบกันได้

เมื่อนำข้อมูลทั้งสองชุดมาต่อกันก็จะต้องมีคอลัมน์ใดคอลัมน์หนึ่งที่ระบุว่า ข้อนี้เป็นข้อมูลจากระบบ ข้อมูลนี้เป็นข้อมูลจากผู้ใช้ เมื่อทำเป็นรายงาน ดังเช่น PivotTable จะได้เปรียบเทียบกันได้สะดวก

การที่นำมาข้อมูลมาต่อกันเป็นฐานข้อมูลแล้วค่อยนำไปใช้จะทำให้สะดวก ไม่ว่าจะแค่ทำการจัดเรียง การกรอง หรือนำข้อมูลไปทำรายงานต่าง ๆ เช่นเปรียบเทียบเป็นรายงวด หาแนวโน้ม ฯลฯ

สังเกตได้ว่า Tools สำคัญ ๆ ที่ Microsoft สร้างขึ้นเช่น Power Query ก็เพื่อสะดวกต่อการนำข้อมูลจากแหล่งต่าง ๆ มาแปลงให้เป็นฐานข้อมูล เพื่อให้นำข้อมูลนั้นไปใช้งานต่อได้โดยง่ายครับ
:D ขอบคุณครับ หากมีอะไรเพิ่มเติมจะถามกันอีกครั้งครับ
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

#7

Post by Bo_ry »

V2
=FILTER(P2:S11,ISNA(MATCH(P2:P11,FILTERXML("<x><m>"&TEXTJOIN("</m><m>",,A2:A6,F2:F5,K2:K5)&"</m></x>","//m"),)))
You do not have the required permissions to view the files attached to this post.
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: เปรียบเทียบความแตกต่างให้ทราบการเคลื่อนย้ายพนักงาน

#8

Post by Totem »

Bo_ry wrote: Fri Jul 16, 2021 5:29 pm V2
=FILTER(P2:S11,ISNA(MATCH(P2:P11,FILTERXML("<x><m>"&TEXTJOIN("</m><m>",,A2:A6,F2:F5,K2:K5)&"</m></x>","//m"),)))
:D ได้ตามต้องการครับ ขอบคุณครับ

ยังไม่เข้าใจ
FILTERXML("<x><m>"&TEXTJOIN("</m><m>",,A2:A6,F2:F5,K2:K5)&"</m></x>","//m")
"<x><m>" , "</m><m>" , "</m></x>","//m"
ช่วยอธิบายสูตรจะเป็นประโยชน์มากครับ
Post Reply