Get Column letter, lấy tên cột tại 1 cell

Liên hệ QC

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,912
Có 1 bài toán cho các bạn: Làm cách nào dùng công thức đễ lấy dc tên cột tại 1 cell nào đó
Ví dụ, tai cell AG5, tạo công thức sao cho nó trã về kết quã là AG...
------------------------
Bài viết này hôm qua rõ ràng đã dc post lên nhưng hôm nay bổng dưng biến mất tăm... Đành phải post lại vậy! Thật khó hiểu!
Mến
ANH TUẤN
 
Có 1 bài toán cho các bạn: Làm cách nào dùng công thức đễ lấy dc tên cột tại 1 cell nào đó
Ví dụ, tai cell AG5, tạo công thức sao cho nó trã về kết quã là AG...

+ Lấy thứ tự thì được anh ah thì dùng hàm column() - cái này a đã biết

+ Nhưng anh muốn kết hợp hàm Indirect(...) ah???

nếu thế thì a có thể dùng tham số địa chỉ theo dạng RiCj chỉ cần khai báo thêm tham số thứ 2 của indirect đó là indirect("RiCj",0) là được trong đó i,j là thứ tự cột

chắc a hiểu ko cần ví dụ
 
Chỉnh sửa lần cuối bởi điều hành viên:
Hõng phải... ý tôi là muốn lấy tên cột cơ, ko phải chỉ số cột....
Ví dụ tôi đang tại Cell F5, dùng công thức gì đễ lấy dc chử F
 
Em đã viết một bài về chuyện này rồi anh Tuấn à (http://www.giaiphapexcel.com/forum/showpost.php?p=47075&postcount=19). Thôi để em trích lại nghe:
Xác định tên của cột (Determining the Column Letter)
Trong Excel có hàm COLUMN(), cho ra kết quả là số của cột (ví dụ, gõ hàm này trong cột B thì kết quả sẽ là 2).

Nhưng đôi khi bạn muốn kết quả là tên của cột chứ không muốn đó là con số (B chứ không phải là 2), thì làm sao?

Đây là một vấn đề đòi hỏi sự khôn khéo một chút, vì tên cột trong bảng tính chạy từ A đến Z, từ AA đến AZ... và cho tới tận cùng là XFD (!)

Có một hàm giúp chúng ta tìm địa chỉ tuyệt đối của một cell, đó là hàm CELL("address"), ví dụ tìm $A$2, hoặc $B$10...

Tinh ý một chút, ta thấy tên của cột chính là những chữ cái nằm giữa hai dấu dollar ($) trong cái địa chỉ tuyệt đối này.

Bắt đầu làm nhé: dùng hàm MID() trích ra chữ cái từ vị trí thứ 2 trong địa chỉ tuyệt đối của cell:
MID(CELL("Address"), 2, num_chars)​

Cái khó là cái num_chars này đây, vì tên cột thì có thể là 1, 2, hoặc 3 ký tự (ví dụ: A, AA hoặc AAA). Vận dụng hàm FIND thôi:
FIND("$", CELL("address"”,A2), 3) - 2​

Giải thích chút nhé: Dùng hàm FIND(), tìm vị trí của dấu $ trong cái địa chỉ tuyệt đối của cell, và bắt đầu tìm từ vị trí thứ 3 trong cái địa chỉ này.

Tại sao phải trừ đi 2 ? Công thức trên sẽ chỉ ra vị trí (là một con số) của dấu $ thứ hai trong địa chỉ tuyệt đối của cell, tức là cái dấu $ phía sau tên cột, phải trừ đi 2 tức là trừ bớt đi 2 cái $, lúc này kết quả sẽ chính là số ký tự của tên cột (1 chữ, 2 chữ hoặc 3 chữ)

Bây giờ, công thức hoàn chỉnh sẽ như sau:
MID(CELL("Address"), 2, FIND("$", CELL("address"), 3) - 2)

Công thức này áp dụng tại chính cell chứa công thức.
Nếu muốn tìm tên cột tại một cell nào đó, bạn chỉ việc thêm địa chỉ (hoặc một cái gì đó tham chiếu đến địa chỉ này) của cell muốn tìm vào phía sau cái "address"

Ví dụ, muốn tìm tên của cell AGH68, bạn gõ:
MID(CELL("Address", AGH68), 2, FIND("$", CELL("address", AGH68), 3) - 2) cho kết quả là AGH​
 
He... he... Công thức này thì tôi biết rồi.. nhưng nói thật: nó râu ria dài dòng quá đi.. Tôi muốn 1 công thức khác hay hơn, ngắn gọn hơn cơ... Có ai nghĩ ra sẽ có cách khác ko? Tất nhiên là công thức rồi...
ANH TUẤN
 
Chào Anh
Thêm 1 công thức lượm thượm, tham khảo cho vui
=LEFT(ADDRESS(1,COLUMN(BA1),4),LEN(ADDRESS(1,COLUMN(BA1),4))-1)

hi hi
TDN
 
tedaynui đã viết:
Chào Anh
Thêm 1 công thức lượm thượm, tham khảo cho vui
=LEFT(ADDRESS(1,COLUMN(BA1),4),LEN(ADDRESS(1,COLUMN(BA1),4))-1)

hi hi
TDN

+ rất hay

* BỔ SUNG

+ Bổ sung lấy tên cột của ô hiện chứa công thức thì dùng công thức sau

PHP:
=LEFT(ADDRESS(1,COLUMN(),4),LEN(ADDRESS(1,COLUMN(),4))-1)

hic cái này ai cũng biết bổ sung cho có tính hệ thống
+ Bổ sung lấy thứ tự dòng của ô hiện chứa công thức thì dùng công thức sau
PHP:
=ROW()
+ ==> lấy địa chỉ ô (<tên cột><tt hàng>) của ô hiện chứa công thức thì
PHP:
=LEFT(ADDRESS(1,COLUMN(),4),LEN(ADDRESS(1,COLUMN(),4))-1)&ROW()
 
Lần chỉnh sửa cuối:
tigertiger đã viết:
[/php]
+ ==> lấy địa chỉ ô (<tên cột><tt hàng>) của ô hiện chứa công thức thì
PHP:
=LEFT(ADDRESS(1,COLUMN(),4),LEN(ADDRESS(1,COLUMN(),4))-1)&ROW()
Vậy anh dùng thử công thức này xem có được không nhé
=ADDRESS(ROW(),COLUMN(),4)

TDN
 
CT này không biết có đúng ý bác không
=CHAR(COLUMN()+64) nhưng chí đến cột Z thôi hi..
 
He... he... có công thức nào ngắn hơn cái này ko:
Mã:
=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")
 
Web KT

Bài viết mới nhất

Back
Top Bottom