[ Home ]  [ Today 's Event ]  [ FAQ ]  [ บันทึกงาน ]
User: Passwd:
ค้นหาข้อมูล:

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 1

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

สมมติเรามีข้อมูลต้นฉบับเป็น Array หรือ Matrix 4×3 ดังนี้ (ก็พิมพ์ลงไปตรงๆ นั่นแหละ) มาดูซิว่าเราจะทำอะไรกับมันได้บ้าง?

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 2

หาผลรวมแต่ละแถว

หากอยากจะหาผลรวมแต่ละแถว ปกติแล้วเราก็จะสามารถ SUM แต่ละแถวง่ายๆ ได้เลยเนอะ แต่เพื่อวัตถุประสงค์ในการทำความเข้าใจกับ Matrix ให้มากขึ้น (เพื่อรองรับเคสที่ซับซ้อนขึ้นในอนาคต) เราจะลองมาดูกันว่า ต้องคูณ Matrix ยังไงถึงจะได้ผลรวมแต่ละแถว

เดิม Matrix นี้เป็น 4×3 ซึ่งถ้าจะได้ผลรวมแถว มันจะต้องออกมาเป็น Matrix ผลลัพธ์ 4×1

นั่นคือ มันต้องไปคูณกับ Matrix อะไรซักอย่างซึ่งมี 3 แถว 1 คอลัมน์แน่นอนด้วยเหตุผลตามรูปนี้

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 3

ซึ่งมันจะจับคู่แถวใน Matrix แรกมาคูณกับคอลัมน์แรกของ Matrix ที่สอง ซึ่งเราต้องการทั้งเลข 10, 85, 75 มาบวกกันหมดเลย แสดงว่ามันต้องคูณ 1 ทั้งหมดแน่นอน นั่นคือ Matrix ที่สองต้องเป็นเลข 1 หมดเลย เพื่อที่จะให้เป็น 10*1+ 85*1 + 75*1

ดังนั้นเขียนสูตรได้ว่า

=MMULT(B7:D10,F2:F4)
เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 4

ซึ่งถ้าเราไม่อยากจะมาทด Matrix ที่มีเลข 1 แบบนั้น เราก็ต้องสร้างมันขึ้นมา เช่น ใช้เลขประจำ COLUMN ของ Matrix แรกมาทำให้เป็น 1 ด้วยการยกกำลัง 0 แล้ว Transpose เปลี่ยนจากแนวนอน เป็นแนวตั้ง ก็ได้ เช่น

=MMULT(B7:D10,TRANSPOSE(COLUMN(B7:D10)^0))
เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 5

อธิบายเล็กน้อยเผื่องง

  • =COLUMN(B7:D10) จะได้ {2,3,4}
  • พอจับยกกำลัง 0 จะได้ {1,1,1} ซึ่งเป็น Array แนวนอน (คั่นด้วย Comma แปลว่าคนละ Column)
  • เลย TRANSPOSE ได้ {1;1;1} ซึ่งเป็น Array แนวตั้ง (คั่นด้วย Semi-Colon)
  • จากนั้นมันก็คืออันเดียวกับ F2:F4 ที่เราเขียนแบบ Manual นั่นแหละ

ต่อไปมาหาผลรวมแต่ละคอลัมน์บ้าง

ถ้าคิดในทำนองเดียวกันกับอันแรก จะได้ผลลัพธ์เป็น 1 แถวx 3คอลัมน์ มันก็ต้องมี Matrix 1 x 4 มาคูณด้วยข้อมูลต้นฉบับของเรา และมันก็ต้องเป็นเลข 1 หมดเลยด้วย เพราะเราเอาทุกค่าคือ 1*10 + 1*30 + 1*70 +1*30

และสูตรก็คือ

=MMULT(A8:D8,F2:H5)
เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 6

และถ้าไม่อยากมาพิมพ์ Matrix 1×4 ที่เป็นเลข 1 ทดไว้ ก็สามารถสร้าง Matrix จำลองในลักษณะคล้ายๆ เดิมได้ว่า

=MMULT(TRANSPOSE(ROW(F2:H5)^0),F2:H5)

เพียงแต่เปลี่ยนมาเอาจำนวนแถวของ Matrix Original มาทำให้เป็น 1 ทั้งหมด แล้ว Transpose มาเป็นแนวนอน

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 7

และนี่ก็เป็นการใช้ Matrix เริ่มมาประยุกต์ทำอะไรที่เกี่ยวกับ Excel โดยตรงมากขึ้น ตอนหน้าจะเริ่มน่าสนใจมากขึ้นแล้ว เช่น ใช้ Matrix ช่วยหาข้อมูลในหลายๆ คอลัมน์เป็นต้น ว่าข้อมูลที่ต้องการอยู่ในแถวไหนบ้าง ^^

ขอบคุณที่มาจาก SIRA EKABUT






https://www.thepexcel.com


โดย:
งาน: งานบริหารงานฝ่ายบุคลากร
อ้างอิงแผนงาน : ดำเนินงานธุรการให้บรรลุตามเป้าหมายของฝ่าย และจัดทำข้อมูลสารสนเทศของฝ่ายบริหารทั่วไปให้เป็นไปตามข้อกำหนดงานสารสนเทศโรงเรียน
อ้างอิงโครงการ : -
แหล่งที่มา: https://www.thepexcel.com

ขอบคุณสำหรับการโวตท์
Vote
เป็นประโยชน์ต่อผู้โพสต์เอง
เป็นประโยชน์ต่อฉัน
เป็นประโยชน์ต่อผู้ปกครอง
เป็นประโยชน์ต่อนักเรียน
มีประโยชน์ต่อทุกคน
บุคลากร 0 บุคคลภายนอก 0

อ่าน 0 ครั้ง