มีคน inbox มาถามว่า “โจทย์คือ มีข้อมูล 2 ชุด ชุด A and B จะทำการรวมข้อมูลโดยการที่ให้ ข้อมูล A 1 แถว แล้วต่อด้วยข้อมูล B 5 แถว แล้วทำสลับไปแบบนี้เรื่อยๆ สามารถทำยังไงได้มั่งครับ?” ผมเห็นว่าน่าสนใจดีเลย เขียนเป็นบทความนี้เพื่อตอบให้เลยครับ
วิธีการทำที่ผมเห็นว่าง่ายที่สุด ก็คือใช้ Power Query ทำ เพราะมันคือการ Transform/Reshape Data ซึ่งเป็นสิ่งที่ Power Query เก่งที่สุด ซึ่งเดี๋ยวผมจะสร้างข้อมูล Dummy ขึ้นมา 2 ชุด เป็นชุด A กับ B ดังนี้นะครับ
สารบัญ
แนวคิด
หากเราทำแบบตรงไปตรงมา คือเอาตาราง A มา 1 แถว เอาตาราง B มา 5 แถว จะยุ่งยากเกินไป ให้เราพลิกมุมคิดนิดนึงจะง่ายขึ้นเยอะมากๆ (การแก้ไขปัญหาหลายๆ อย่างก็แบบนี้แหละ พยายามหาวิธีที่ง่ายที่สุดเข้าไว้ ซึ่งบางทีอาจไม่ตรงไปตรงมา)
ซึ่งแนวคิดที่เราจะใช้ คือ เราจะ Append 2 ตารางนี้เข้าด้วยกัน จากนั้นทำการ Sort ให้ได้ผลลัพธ์ตามที่ต้องการภายหลัง การจะทำแบบนั้นได้เราจะต้องสร้างคอลัมน์ใหม่ ซึ่งเป็นเลข Running ที่เอาไว้ Sort โดยเฉพาะครับ
ใส่เลข Running ของตาราง A
เอาตาราง A เข้าสู่ Power Query Editor แล้ว Add Index Column ให้เริ่มจาก 1
จากนั้นกด Close & Load to ให้เป็น Connection Only ไว้
ใส่เลข Running ของตาราง B
จากนั้นก็เอาตาราง B เข้า Power Query Editor แล้วใส่ Index Column จาก 1 เหมือนเดิม
แต่คราวนี้เราจะทำให้เลข 1 ซ้ำกัน 5 รอบ แล้วค่อยเลข 2 ซ้ำ 5 รอบ แบบนี้ไปเรื่อยๆ….
วิธีทำคือเราจะสั่งให้เอา Index Column ไปหารด้วย 5
แล้วเราก็สั่ง Round Up ซะ เพื่อให้เลขได้ตามต้องการ
แค่นี้ก็ได้เลซ้ำกัน 5 ตัวตามต้องการแล้ว
รวมข้อมูล 2 ตารางเข้าด้วยกัน
จากนั้นเราก็สั่ง Append 2 ตารางเข้าด้วยกัน โดยให้ตาราง A เป็นหลัก
จะได้หน้าตารางประมาณนี้
Sort ให้ได้ตามต้องการ
จากนั้นก็ Sort Index Column ซะ ก็จะได้หน้าตาตามที่ต้องการ
ถ้าไม่อยากได้ Index Column แล้วก็ลบทิ้งไปได้เลย
จากนั้นก็ Close & Load ออกมาเป็น Table หรือออะไรก็ได้ตามต้องการ จบ