COLUMN ส่งคืนหมายเลขคอลัมน์ (Column Number) ของเซลล์หรือช่วงที่ระบุ ส่งคืนตัวเลขคอลัมน์ 1, 2, 3… (A=1, B=2 เป็นต้น) มีประโยชน์ในการระบุตำแหน่งคอลัมน์แบบไดนามิก
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| [reference]ไม่บังคับ | Reference | current_column | เซลล์ที่ต้องการทราบเลขคอลัมน์ (ว่าง = เซลล์ปัจจุบัน) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน COLUMN คืนหมายเลขคอลัมน์ของเซลล์หรือช่วงที่ระบุ เป็นตัวเลข 1, 2, 3… (A=1, B=2, C=3 ไปเรื่อยๆ) ถ้าไม่ใส่ reference จะคืนเลขคอลัมน์ของเซลล์ที่วางสูตรอยู่เอง
ใช้บ่อยตอนต้องการสร้างสูตรที่ ‘รู้ตัวเอง’ ว่าอยู่คอลัมน์ไหน แล้วปรับพฤติกรรมตามนั้น เช่น สร้างหัวตารางเดือนที่เลื่อนไปเองเมื่อลากสูตรไปทางขวา, ทำ Alternate Column Shading ด้วย MOD(COLUMN(),2), สร้างลำดับเลข 1 ถึง N แบบ spill array ในเวอร์ชัน Microsoft 365, หรือส่งเลขคอลัมน์เข้า INDEX/OFFSET เพื่ออ้างอิงข้อมูลแบบไดนามิก
ข้อควรระวัง: ใน Excel รุ่นเก่าก่อน 365 การใส่ range หลายคอลัมน์ให้ COLUMN() จะได้แค่เลขคอลัมน์แรกกลับมา ไม่ spill เป็น array แบบรุ่นใหม่ครับ
สมมติว่า CellC5 เป็น Named Range ที่อ้างถึงเซลล์ C5
สูตรจะคืนค่า 3 ซึ่งเป็นหมายเลขคอลัมน์ของ CellC5 เพราะ C เป็นคอลัมน์ที่ 3 นับจาก A=1
ใช้ COLUMN(A1) เป็นเลขเดือน (1) แล้วส่งเข้า DATE เพื่อสร้างวันที่ 1 มกราคม 2026 จากนั้น TEXT แปลงเป็นชื่อเดือน
ลากสูตรนี้ไปทางขวา เลขคอลัมน์จะเพิ่มเป็น 2, 3, 4… หัวตารางก็เปลี่ยนเป็นกุมภาพันธ์ มีนาคม เมษายน ให้อัตโนมัติ ไม่ต้องพิมพ์ชื่อเดือนเอง 12 ครั้ง
สมมติว่า MyRange เป็น Named Range ที่อ้างถึงช่วง A1:C1
ใน Excel 365 สูตรจะคืนค่าหมายเลขคอลัมน์เป็น Array {1,2,3} spill ออกมาทันที แต่ถ้าเป็น Excel รุ่นเก่าก่อน 365 จะได้แค่เลขคอลัมน์แรก (1) กลับมาเท่านั้น
MOD(COLUMN(),2) หารเลขคอลัมน์ปัจจุบันด้วย 2 แล้วเอาเศษ ถ้าเป็นคอลัมน์คู่เศษจะเป็น 0 ทำให้เงื่อนไข =0 เป็น TRUE
ใช้เป็นสูตรใน Conditional Formatting เพื่อลงสีสลับคอลัมน์คู่-คี่ ให้ตารางอ่านง่ายขึ้นโดยไม่ต้องไล่ทาสีทีละคอลัมน์เอง
ใช้ CHAR เพื่อแปลงเลขคอลัมน์เป็นตัวอักษร โดย CHAR(65)=A ดังนั้น CHAR(64+เลขคอลัมน์) จะได้ A เมื่อคอลัมน์=1, B เมื่อคอลัมน์=2, C เมื่อคอลัมน์=3
ใช้ได้แค่คอลัมน์ A-Z (1-26) เท่านั้น ถ้าเกิน Z ต้องใช้ ADDRESS หรือ SUBSTITUTE(ADDRESS(…)) แทน
COLUMN ส่งคืนหมายเลขคอลัมน์เป็นตัวเลข (1-16384 สำหรับ Excel modern, A=1, B=2)
COLUMN() ส่งคืนคอลัมน์ปัจจุบัน COLUMN(A1) ส่งคืนคอลัมน์ของเซลล์ A1 (เสมอ 1)
ได้ แต่ถ้า range มีหลายคอลัมน์ จะส่งคืนหมายเลขคอลัมน์แรก
ใช้ CHAR(64+COLUMN()) สำหรับ A-Z หรือใช้ Regex/VBA สำหรับ A-ZZ
ได้ครับ สร้าง unique ID เช่น =ROW()&"_"&COLUMN() ได้ "5_3"
ใช้ INDEX() หรือ INDIRECT() เช่น =INDEX(Range, ROW()-header, COLUMN()-1)
ฟังก์ชันที่ผู้เขียนโยงไว้กับ COLUMN จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ADDRESS สร้างข้อความที่เป็นตำแหน่งเซลล์จากหมายเลขแถวและคอลัมน์ รองรับ Absolute Mixed Relative และสไตล์ R1C1 มักใช้คู่กับ INDIRECT เพื่อสร้าง Dynamic Reference
CHOOSECOLS ใช้ดึงคอลัมน์ที่ต้องการจากตารางหรือ Array โดยระบุเลขลำดับคอลัมน์ สามารถดึงได้หลายคอลัมน์พร้อมกัน จัดลำดับใหม่ หรือทำซ้ำคอลัมน์เดิมได้ รองรับการนับคอลัมน์จากขวาสุดโดยใช้เลขลบ (เช่น -1 คือคอลัมน์ขวาสุด)
นับจำนวนคอลัมน์ทั้งหมดในช่วงข้อมูลหรืออาร์เรย์ที่ระบุ ใช้บ่อยคู่กับ OFFSET หรือ VLOOKUP เพื่อทำสูตรแบบ dynamic ที่ปรับตามขนาดตารางเอง
ROW ส่งคืนหมายเลขแถว (Row Number) ของเซลล์หรือช่วงที่ระบุ ส่งคืนตัวเลขแถว 1, 2, 3… มีประโยชน์ในการกำหนดหมายเลขลำดับแบบไดนามิก และสร้างสูตรที่ปรับตัวตามตำแหน่ง
ส่งกลับจำนวนแถวในอาร์เรย์หรือการอ้างอิง ใช้สร้างสูตรแบบ dynamic ที่ขยายขนาดตามข้อมูลจริง ไม่ต้องมานับแถวเองทุกครั้งที่ข้อมูลเปลี่ยน
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่