สารบัญ
ในบทช่วยสอนนี้ เราจะดูวิธีเปลี่ยนหมายเลขคอลัมน์ของ Excel เป็นอักขระตัวอักษรที่สอดคล้องกัน
เมื่อสร้างสูตรที่ซับซ้อนใน Excel บางครั้งคุณอาจต้องได้รับ ตัวอักษรประจำคอลัมน์ของเซลล์เฉพาะหรือจากตัวเลขที่กำหนด สามารถทำได้สองวิธี: โดยใช้ฟังก์ชันในตัวหรือฟังก์ชันที่กำหนดเอง
วิธีแปลงหมายเลขคอลัมน์เป็นตัวอักษร (คอลัมน์ตัวอักษรเดี่ยว)
ในกรณี ชื่อคอลัมน์ประกอบด้วยตัวอักษรตัวเดียว จาก A ถึง Z คุณสามารถหาได้โดยใช้สูตรอย่างง่ายนี้:
CHAR(64 + col_number)ตัวอย่างเช่น หากต้องการแปลงเลข 10 เป็น ตัวอักษรประจำคอลัมน์ สูตรคือ:
=CHAR(64 + 10)
คุณยังสามารถป้อนตัวเลขในบางเซลล์และอ้างถึงเซลล์นั้นในสูตรของคุณ:
=CHAR(64 + A2)
สูตรนี้ทำงานอย่างไร:
ฟังก์ชัน CHAR ส่งคืนอักขระตามรหัสอักขระในชุด ASCII ค่า ASCII ของตัวอักษรพิมพ์ใหญ่ของตัวอักษรภาษาอังกฤษคือ 65 (A) ถึง 90 (Z) ดังนั้น เพื่อให้ได้รหัสอักขระของตัวพิมพ์ใหญ่ A คุณต้องเพิ่ม 1 ถึง 64; ในการรับรหัสอักขระของตัวพิมพ์ใหญ่ B ให้บวก 2 ถึง 64 และอื่น ๆ
วิธีแปลงหมายเลขคอลัมน์ของ Excel เป็นตัวอักษร (คอลัมน์ใดก็ได้)
หากคุณกำลังมองหาอเนกประสงค์ สูตรที่ใช้กับคอลัมน์ใดก็ได้ใน Excel (1 ตัวอักษร 2 ตัวอักษร และ 3 ตัวอักษร) คุณจะต้องใช้ไวยากรณ์ที่ซับซ้อนขึ้นเล็กน้อย:
SUBSTITUTE(ADDRESS(1, col_number, 4 ), "1", "")กับตัวอักษรคอลัมน์ใน A2 สูตรจะอยู่ในรูปแบบนี้:
=SUBSTITUTE(ADDRESS(1, A2, 4), "1", "")
วิธีการทำงานของสูตรนี้:
ขั้นแรก คุณสร้างที่อยู่เซลล์ด้วยหมายเลขคอลัมน์ที่สนใจ สำหรับสิ่งนี้ ให้ระบุอาร์กิวเมนต์ต่อไปนี้ให้กับฟังก์ชัน ADDRESS:
- 1 สำหรับ row_num (หมายเลขแถวไม่สำคัญ ดังนั้นคุณสามารถใช้อะไรก็ได้)
- A2 (เซลล์ที่มีหมายเลขคอลัมน์) สำหรับ column_num .
- 4 สำหรับ abs_num อาร์กิวเมนต์เพื่อส่งกลับการอ้างอิงแบบสัมพัทธ์
ด้วยพารามิเตอร์ข้างต้น ฟังก์ชัน ADDRESS จะส่งคืนสตริงข้อความ "A1" เป็นผลลัพธ์
เนื่องจากเราต้องการเพียงตัวอักษรประจำคอลัมน์ เราจึงตัดหมายเลขแถวออกโดยใช้ฟังก์ชัน SUBSTITUTE ซึ่งค้นหา "1" (หรือหมายเลขแถวใดก็ตามที่คุณฮาร์ดโค้ดไว้ในฟังก์ชัน ADDRESS) ในข้อความ "A1" และแทนที่ด้วยสตริงว่าง ("")
รับตัวอักษรประจำคอลัมน์จากหมายเลขคอลัมน์โดยใช้ฟังก์ชันแบบกำหนดเอง ฟังก์ชันที่กำหนดเอง
หากคุณต้องการแปลงหมายเลขคอลัมน์เป็นตัวอักษรเป็นประจำ ฟังก์ชันที่ผู้ใช้กำหนดเอง (UDF) จะช่วยประหยัดเวลาของคุณได้อย่างมาก
โค้ดของฟังก์ชันนั้นค่อนข้างดี เรียบง่ายและตรงไปตรงมา:
Public Function ColumnLetter(col_nu m) ColumnLetter = Split(Cells(1, col_num).Address, "$" )(1) End Functionที่นี่ เราใช้คุณสมบัติ เซลล์ เพื่ออ้างถึงเซลล์ในแถวที่ 1 และ หมายเลขคอลัมน์ที่ระบุและคุณสมบัติ Address เพื่อส่งคืน aสตริงที่มีการอ้างอิงแบบสัมบูรณ์ไปยังเซลล์นั้น (เช่น $A$1) จากนั้น ฟังก์ชัน Split จะแบ่งสตริงที่ส่งคืนออกเป็นองค์ประกอบแต่ละรายการโดยใช้เครื่องหมาย $ เป็นตัวคั่น และเราจะส่งคืนองค์ประกอบ (1) ซึ่งเป็นตัวอักษรประจำคอลัมน์
วางโค้ดในโปรแกรมแก้ไข VBA และของคุณ ฟังก์ชัน ColumnLetter ใหม่พร้อมใช้งานแล้ว สำหรับคำแนะนำโดยละเอียด โปรดดูที่: วิธีแทรกโค้ด VBA ใน Excel
จากมุมมองของผู้ใช้ปลายทาง ไวยากรณ์ของฟังก์ชันมีความเรียบง่ายดังนี้:
ColumnLetter(col_num)Where col_num คือหมายเลขคอลัมน์ที่คุณต้องการแปลงเป็นตัวอักษร
สูตรจริงของคุณสามารถมีลักษณะดังนี้:
=ColumnLetter(A2)
และจะคืนค่า ผลลัพธ์เหมือนกันทุกประการกับฟังก์ชันดั้งเดิมของ Excel ที่กล่าวถึงในตัวอย่างก่อนหน้านี้:
วิธีรับตัวอักษรประจำคอลัมน์ของเซลล์บางเซลล์
วิธีระบุตัวอักษรประจำคอลัมน์ของ เซลล์ใดเซลล์หนึ่ง ให้ใช้ฟังก์ชัน COLUMN เพื่อดึงข้อมูลหมายเลขคอลัมน์ และส่งหมายเลขนั้นไปยังฟังก์ชัน ADDRESS สูตรที่สมบูรณ์จะมีรูปร่างดังนี้:
SUBSTITUTE(ADDRESS(1, COLUMN( cell_address), 4), "1", "")ตามตัวอย่าง ลองหาตัวอักษรประจำคอลัมน์ ของเซลล์ C5:
=SUBSTITUTE(ADDRESS(1, COLUMN(C5), 4), "1", "")
เห็นได้ชัดว่าผลลัพธ์คือ "C" :)
วิธีรับตัวอักษรประจำคอลัมน์ของปัจจุบัน เซลล์
ในการหาตัวอักษรของเซลล์ปัจจุบัน สูตรเกือบจะเหมือนกับในตัวอย่างข้างต้น ข้อแตกต่างเพียงอย่างเดียวคือฟังก์ชัน COLUMN() คือใช้กับอาร์กิวเมนต์ว่างเพื่ออ้างถึงเซลล์ที่มีสูตร:
=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), "1", "")
วิธีสร้างการอ้างอิงช่วงไดนามิกจากหมายเลขคอลัมน์
หวังว่าตัวอย่างก่อนหน้านี้จะให้แนวคิดใหม่ๆ แก่คุณ แต่คุณอาจสงสัยเกี่ยวกับการใช้งานจริง
ในตัวอย่างนี้ เราจะแสดงวิธีใช้ "หมายเลขคอลัมน์เป็นตัวอักษร " สูตรสำหรับการแก้ปัญหางานในชีวิตจริง โดยเฉพาะอย่างยิ่ง เราจะสร้างสูตร XLOOKUP แบบไดนามิกที่จะดึงค่าจากคอลัมน์เฉพาะตามจำนวน
จากตารางตัวอย่างด้านล่าง สมมติว่าคุณต้องการรับตัวเลขกำไรสำหรับโครงการที่กำหนด (H2 ) และสัปดาห์ (H3)
เพื่อให้งานสำเร็จ คุณต้องระบุ XLOOKUP ด้วยช่วงที่จะส่งคืนค่า เนื่องจากเรามีเพียงหมายเลขสัปดาห์ซึ่งสอดคล้องกับหมายเลขคอลัมน์ เราจะแปลงตัวเลขนั้นเป็นตัวอักษรประจำคอลัมน์ก่อน แล้วจึงสร้างการอ้างอิงช่วง
เพื่อความสะดวก เราจะแยกย่อยกระบวนการทั้งหมด เป็น 3 ขั้นตอนง่ายๆ
- แปลงหมายเลขคอลัมน์เป็นตัวอักษร
ด้วยหมายเลขคอลัมน์ใน H3 ใช้สูตรที่คุ้นเคยเพื่อเปลี่ยนเป็นตัวอักษร ตัวอักษร:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")
เคล็ดลับ หากตัวเลขในชุดข้อมูลของคุณไม่ตรงกับหมายเลขคอลัมน์ อย่าลืมแก้ไขให้ถูกต้อง ตัวอย่างเช่น ถ้าเรามีข้อมูลสัปดาห์ที่ 1 ในคอลัมน์ B ข้อมูลสัปดาห์ที่ 2 ในคอลัมน์ C และต่อไป เราจะใช้ H3+1 เพื่อให้ได้หมายเลขคอลัมน์ที่ถูกต้อง
- สร้างสตริงที่แสดงการอ้างอิงช่วง
หากต้องการสร้างการอ้างอิงช่วงในรูปแบบของสตริง ให้คุณต่อตัวอักษรคอลัมน์ที่ส่งกลับโดยสูตรด้านบนกับตัวแรก และหมายเลขแถวสุดท้าย ในกรณีของเรา เซลล์ข้อมูลอยู่ในแถวที่ 3 ถึง 8 เราจึงใช้สูตรนี้:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"
เนื่องจาก H3 มี "3" ซึ่งแปลงเป็น "C" สูตรของเราผ่านการเปลี่ยนแปลงต่อไปนี้:
="C"&"3:"&"C"&"8"
และสร้างสตริง C3:C8
- Make การอ้างอิงช่วงไดนามิก
เมื่อต้องการแปลงสตริงข้อความเป็นการอ้างอิงที่ถูกต้องซึ่ง Excel สามารถเข้าใจได้ ให้ซ้อนสูตรข้างต้นในฟังก์ชัน INDIRECT แล้วส่งต่อไปยังอาร์กิวเมนต์ที่ 3 ของ XLOOKUP:
ดูสิ่งนี้ด้วย: วิธีการค้นหาใน Excel: ฟังก์ชันและตัวอย่างสูตร=XLOOKUP(H2, E3:E8, INDIRECT(H4), "Not found")
หากต้องการกำจัดเซลล์พิเศษที่มีสตริงช่วงส่งคืน คุณสามารถวางสูตร SUBSTITUTE ADDRESS ภายในฟังก์ชัน INDIRECT เอง:
=XLOOKUP(H2, E3:E8, INDIRECT(SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"), "Not found")
ด้วยฟังก์ชัน ColumnLetter แบบกำหนดเองของเรา คุณจะได้รับโซลูชันที่มีขนาดกะทัดรัดและสวยงามยิ่งขึ้น:
=XLOOKUP(H2, E3:E8, INDIRECT(ColumnLetter(H3) & "3:" & ColumnLetter(H3) & "8"), "Not found")
นั่นคือ วิธีค้นหาตัวอักษรประจำคอลัมน์จากตัวเลขใน Excel ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
แบบฝึกหัดสมุดงานสำหรับการดาวน์โหลด
หมายเลขคอลัมน์ Excel เป็นตัวอักษร - ตัวอย่าง (ไฟล์ .xlsm)