ADDRESS สร้าง “ที่อยู่ของเซลล์” ออกมาเป็นข้อความ จากเลขแถวและเลขคอลัมน์ที่เราระบุ เช่น =ADDRESS(5,3) ได้ $C$5 ตัวมันเองไม่ได้ดึงค่าในเซลล์ แต่ใช้คู่กับ INDIRECT เพื่อประกอบการอ้างอิงแบบไดนามิก หรือใช้บอกผู้ใช้ว่า “คำตอบอยู่ที่เซลล์ไหน”
รูปแบบของสูตร ADDRESS
=ADDRESS(เลขแถว, เลขคอลัมน์, [รูปแบบล็อก], [แบบ A1], [ชื่อชีต])
| รูปแบบล็อก | ผลลัพธ์ |
| 1 (ค่าเริ่มต้น) | $C$5 ล็อกทั้งคู่ |
| 2 | C$5 ล็อกแถว |
| 3 | $C5 ล็อกคอลัมน์ |
| 4 | C5 ไม่ล็อก |
ตัวอย่างที่ 1: สร้างที่อยู่จากแถวและคอลัมน์
C2fx
=ADDRESS(A2, B2, 4)| A | B | C | |
|---|---|---|---|
| 1 | แถว | คอลัมน์ | ที่อยู่ |
| 2 | 5 | 3 | C5 |
| 3 | 12 | 1 | A12 |
ตัวอย่างที่ 2: หาเซลล์ที่มีค่าสูงสุดอยู่ที่ไหน
D2fx
=ADDRESS(MATCH(MAX(B2:B6),B2:B6,0)+1, 2)| A | B | D | ||
|---|---|---|---|---|
| 1 | เดือน | ยอดขาย | ยอดสูงสุดอยู่ที่ | |
| 2 | ม.ค. | 120 | $B$4 | |
| 3 | ก.พ. | 90 | ||
| 4 | มี.ค. | 210 |
MATCH หาว่ายอดสูงสุด (210) อยู่ลำดับที่เท่าไรในช่วง ได้ 3 บวก 1 เพราะข้อมูลเริ่มแถวที่ 2 แล้ว ADDRESS ประกอบเป็น $B$4
ตัวอย่างที่ 3: ดึงค่าจากที่อยู่ที่ประกอบขึ้นมา
D2fx
=INDIRECT(ADDRESS(A2, B2))| A | B | C | D | |
|---|---|---|---|---|
| 1 | แถว | คอลัมน์ | (ข้อมูล) | ค่าที่ดึงได้ |
| 2 | 3 | 3 | … | 590 |
ADDRESS สร้างข้อความ $C$3 แล้ว INDIRECT แปลงข้อความนั้นเป็นการอ้างอิงจริง ดึงค่าในเซลล์ C3 ออกมา
เอาเฉพาะตัวอักษรคอลัมน์
=SUBSTITUTE(ADDRESS(1, A2, 4), "1", "") คืนแค่ตัวอักษรคอลัมน์ เช่น ใส่ 28 ได้ AB ใช้ตอนต้องอ้างชื่อคอลัมน์ในข้อความ
ข้อควรรู้
- ผลลัพธ์เป็นข้อความ ไม่ใช่ค่า — ต้องครอบ INDIRECT ถึงจะดึงค่าได้
- งานค้นหาจริงใช้ INDEX ดีกว่า — INDEX + MATCH ดึงค่าได้เลยโดยไม่ต้องผ่าน ADDRESS/INDIRECT ซึ่งเป็นสูตร volatile ที่คำนวณใหม่บ่อยและทำให้ไฟล์ช้า
- ใส่ชื่อชีตได้ — อาร์กิวเมนต์ที่ 5 เช่น
=ADDRESS(1,1,1,TRUE,"ยอดขาย")ได้'ยอดขาย'!$A$1 - ใช้เมื่อจำเป็นต้องได้ “สตริงที่อยู่” จริงๆ เท่านั้น เช่น ทำรายงานที่ระบุตำแหน่งให้ผู้ใช้ หรือประกอบสูตรเป็นข้อความ