การปรับทิศทางของ Autofill ใน Excel 2010 ด้วย สูตร Offset
โดยปกติ Autofill เมื่อลากลง แถวจะเปลี่ยน และเมื่อลากไปทางขวาคอลัมน์จะเปลี่ยน
แต่ถ้าต้องการให้ลากลง คอลัมน์เปลี่ยน และเมื่อลากไปทางขวาให้แถวเปลี่ยน จะทำอย่างไร
ลักษณะนี้ จะมีประโยชน์ เมื่อต้องการสลับแถวและคอลัมน์ เช่น การนำเสนอผลการวิเคราะห์แบบสอบถาม การสลับแถวกับคอลัมน์ เป็นต้น
ความจริง สามารถใช้ฟังก์ชัน Tranpose ของ Access 2010/2013 ได้ แต่เมื่อใช้ Transpose สูตรต่าง ๆ จะมีปัญหา ทำให้ต้องปรับข้อมูลเป็นตัวเลขธรรมดา ซึ่งทำให้ไม่สามารถคำนวณอัตโนมัติ เมื่อมีข้อมูลเปลี่ยนได้
ตัวอย่าง
สมมุติว่า ต้องการลากข้อมูลผลการวิเคราะห์ความพึงพอใจ (ซึ่งได้มาจากสูตรการคำนวณ) มาจัดรูปแบบใหม่ ดังภาพ
แต่ถ้าต้องการให้ลากลง คอลัมน์เปลี่ยน และเมื่อลากไปทางขวาให้แถวเปลี่ยน จะทำอย่างไร
ลักษณะนี้ จะมีประโยชน์ เมื่อต้องการสลับแถวและคอลัมน์ เช่น การนำเสนอผลการวิเคราะห์แบบสอบถาม การสลับแถวกับคอลัมน์ เป็นต้น
ความจริง สามารถใช้ฟังก์ชัน Tranpose ของ Access 2010/2013 ได้ แต่เมื่อใช้ Transpose สูตรต่าง ๆ จะมีปัญหา ทำให้ต้องปรับข้อมูลเป็นตัวเลขธรรมดา ซึ่งทำให้ไม่สามารถคำนวณอัตโนมัติ เมื่อมีข้อมูลเปลี่ยนได้
ตัวอย่าง
สมมุติว่า ต้องการลากข้อมูลผลการวิเคราะห์ความพึงพอใจ (ซึ่งได้มาจากสูตรการคำนวณ) มาจัดรูปแบบใหม่ ดังภาพ
จากตัวอย่าง จะเห็นได้ว่า เราต้องการเปลี่ยนลักษณะการนำเสนอข้อมูล จากแนวนอน เป็นแนวตั้ง ซึ่งจะทำให้ดูง่ายกว่า
ลักษณะนี้ เราไม่สามารถใช้ Autofill ลากข้อมูลจากแนวนอนมาเป็นแนวตั้งได้ เพราะขัดกับลักษณะการใช้งานของ Autofill
ถ้าใช้ Transpose ปรับข้อมูลทำได้โดยการคัดลอกข้อมูลชุดเดิม และวางเฉพาะค่า จากนั้นจึง Traspose ตามแนวตั้ง ก็จะได้ แต่ปัญหาคือ ถ้ามีการปรับข้อมูลใหม่ ก็ต้องมาทำ Transpose ใหม่ ไม่สามารถนำแผ่นงานนี้ไปใช้ได้โดยอัตโนมัติ
ทางออกทางหนึ่งคือ แก้ไขการปรับทิศทางของ Autofill ให้เป็นว่า ลากลงเป็นแนวตั้ง แต่ไปเอาข้อมูลตามแนวนอนมาแสดง
อย่างไรก็ตาม เราก็ต้องใช้ลักษณะของ Autofill ที่ลากตามแนวนอน ก็เอาข้อมูลแนวนอน และลากแนวตั้ง ก็ให้เอาข้อมูลแนวตั้ง แต่จะเขียนสูตรเพิ่ม เพื่อให้เอาข้อมูลอีกแบบ คือ ลากแนวนอนแต่เอาข้อมูลในแนวตั้ง
วิธีการดังกล่าว ต้องใช้สูตร 2 สูตรผสมกัน คือ Offset() และ Columns()
สูตร Offset() เป็นการ อ้างถึงข้อมูลในเซลล์โดยระบุความห่างของเซลล์ที่กำหนด เป็นจำนวนแถวและคอลัมน์
สูตร Columns() เป็นการบอกเลขคอลัมน์ของคอลัมน์ที่กำหนด
ถ้าจะให้สามารถลากได้ทุกทิศทาง ต้องใช้สูตร Rows() เข้าช่วยในสูตร Offset() ด้วย
จากตัวอย่างข้างต้น เราจะใช้เซลล์ B3 เป็นฐานในการอ้างอิงข้อมูลในสูตร Offset() และใช้ Rows() กับ Columns()เพื่อระบุระยะความห่างของเซลล์ที่ต้องการกับเซลล์ B3 ซึ่งเป็นฐานในการอ้างอิง
สูตร มีดังนี้
=OFFSET($B$3,COLUMNS($B$3:B3)-1,ROWS($B$3:B3)-1)
นำสูตรนี้ ไปวางที่เซลล์ C10
สามารถ ใช้Autofill ลากคลุมข้อมูลให้มาแสดงในรูปแบบใหม่ ได้ทันที ขอให้สังเกตว่า เมื่อลาก Autofill ไปทางขวาตามแนวนอน จะไปเอาข้อมูลตามแนวตั้งของชุดข้อมูลเดิมมาแสดง สามารถลากได้ทั้งแนวนอนและแนวตั้ง
และเมื่อมีการเปลี่ยนแปลงข้อมูลดิบ จะปรับค่าโดยอัตโนมัติ
ดาวน์โหลดไฟล์ตัวอย่าง คลิกที่นี่
อ้างอิง
ทำไมในสูตรถึง -1 คะ
ตอบลบ