Page 1 of 1

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

Posted: Mon Jul 12, 2021 10:58 am
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

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

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

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

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

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

Posted: Wed Jul 14, 2021 9:18 am
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


ขอบคุณครับ

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

Posted: Wed Jul 14, 2021 10:32 am
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

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

Posted: Wed Jul 14, 2021 11:02 pm
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 ก็เพื่อสะดวกต่อการนำข้อมูลจากแหล่งต่าง ๆ มาแปลงให้เป็นฐานข้อมูล เพื่อให้นำข้อมูลนั้นไปใช้งานต่อได้โดยง่ายครับ

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

Posted: Thu Jul 15, 2021 11:01 am
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 ขอบคุณครับ หากมีอะไรเพิ่มเติมจะถามกันอีกครั้งครับ

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

Posted: Fri Jul 16, 2021 5:29 pm
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"),)))

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

Posted: Thu Jul 22, 2021 8:59 am
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"
ช่วยอธิบายสูตรจะเป็นประโยชน์มากครับ

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

Posted: Thu Jul 22, 2021 12:21 pm
by Bo_ry

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

Posted: Thu Jul 22, 2021 1:14 pm
by Totem
:D ขอบคุณครับ