Saya baru tahu fungsinya LIN dan COL tetapi masalahnya adalah mereka mengembalikan nomor, dan saya perlu surat kolom untuk INDIRECT saya t.
Jader Dias
2
Anda dapat menggunakan OFFSET berfungsi bersamaan dengan, atau bukannya, INDIRECT rumus dalam hal itu. Jika Anda ingin menggunakan string, saya juga memperbarui jawaban saya.
Breakthrough
Omong-omong, INDIRECT adalah fungsi yang mudah menguap, jadi gunakanlah dengan hemat. Kedengarannya seperti OFFSET mungkin pilihan yang lebih baik di sini jika Anda mendasarkan referensi yang Anda inginkan pada beberapa perhitungan posisi.
AdamV
Jawaban:
31
Anda dapat menggunakan ROW dan COLUMN fungsi untuk melakukan ini. Jika Anda menghilangkan argumen untuk rumus tersebut, sel saat ini digunakan. Ini dapat langsung digunakan dengan itu OFFSET fungsi , atau fungsi lain di mana Anda dapat menentukan baris dan kolom sebagai nilai numerik.
Misalnya, jika Anda masuk =ROW() di sel D8, nilai yang dikembalikan adalah 8. Jika Anda memasukkan =COLUMN() dalam sel yang sama, nilai yang dikembalikan adalah 4.
Jika Anda menginginkan huruf kolom, Anda dapat menggunakan CHAR fungsi. Saya tidak merekomendasikan penggunaan huruf untuk mewakili kolom, karena segala sesuatunya menjadi rumit ketika beralih ke nama kolom huruf ganda (di mana hanya menggunakan angka lebih logis lagian)
Apapun, jika Anda masih ingin mendapatkan surat kolom, Anda bisa menambahkan 64 ke nomor kolom (64 menjadi satu karakter kurang A ), jadi pada contoh sebelumnya, jika Anda menetapkan nilai sel =CHAR(COLUMN()+64), nilai yang dikembalikan adalah D. Jika Anda ingin nilai sel menjadi lokasi sel itu sendiri, rumus lengkapnya adalah =CHAR(COLUMN()+64) & ROW().
Hanya FYI, saya mendapat 64 dari tabel ASCII. Anda juga bisa menggunakan CODE rumus, jadi rumus yang diperbarui menggunakan ini akan menjadi =CHAR(COLUMN() + CODE("A") - 1). Anda harus mengurangi 1 karena nilai minimum COLUMN selalu 1, dan kemudian nilai pengembalian minimum dari seluruh rumus akan menjadi B.
Namun, ini tidak akan berfungsi dengan kolom dua huruf. Dalam hal ini, Anda memerlukan rumus berikut untuk menguraikan kolom dua huruf dengan benar:
Saya tidak yakin apakah ada cara yang lebih mudah untuk melakukannya atau tidak, tetapi saya tahu itu bekerja dari sel A1 untuk ZZ99 tanpa masalah. Namun, ini menggambarkan mengapa sebaiknya menghindari penggunaan pengidentifikasi kolom berbasis huruf, dan tetap menggunakan formula berbasis angka murni (mis. Menggunakan nomor kolom alih-alih menggunakan OFFSET ).
Ini hanya akan berfungsi untuk 26 kolom pertama. Tapi itu akan berhasil.
Jader Dias
1
@ Jader Dias itu sebabnya saya sarankan Anda menggunakan OFFSET alih-alih, yang memungkinkan Anda menentukan kolom sebagai angka. Terlepas dari itu, saya memperbarui jawaban dengan rumus untuk memperluasnya agar berfungsi dengan kolom dua huruf.
Breakthrough
2
Saya tidak tahu mengapa jawaban ini mendapat begitu banyak suara ketika jawaban Skotlandia jauh lebih baik, kecuali bahwa ia tidak menjelaskannya. Tidak diperlukan formula kompleks. Saya menambahkan komentar untuk menjelaskan mengapa / bagaimana cara kerjanya.
Gerhard Powell
Ini berfungsi sampai Anda pindah ke AA dll maka itu tidak akan berfungsi.
krystan honour
@krystanhonour Anda menggunakan rumus terakhir dari jawaban saya dalam hal itu ... However, this will not work with two-letter columns. In that case, you need the following formula to properly parse two-letter columns:
Breakthrough
30
Coba fungsi berikut:
=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")
Penjelasan: ADDRESS(row_num, column_num, [abs_num]). [abs_num] = 4 = alamat relatif. Itu berarti tidak ada '$ dalam nilai yang dikembalikan. Untuk Kolom 'AB', kolom ADDRESS akan mengembalikan 'AB1'. Pengganti menghapus '1'.
Dimana colid mengacu pada a bernama rentang yang akan Anda buat di tempat lain dalam buku kerja yang terdiri dari dua kolom yang berdekatan dengan beberapa baris: kolom pertama yang berisi angka 1 hingga n yang sesuai dengan COLUMN() angka, yang kedua berisi huruf A - ZZ, atau seberapa banyak referensi kolom yang ingin Anda tampung. Itu ROW() tidak apa-apa karena mengembalikan nomor Baris.
Jadi jika Anda menyalin string di atas ke sel A1 dari 'MySheet2', itu akan dievaluasi sebagai =MySheet1!A1, dan mengembalikan nilai yang ditemukannya di sel terkait MySheet1.
Ini akan memungkinkan Anda, misalnya, untuk menggunakannya MySheet1 sebagai area kerja, untuk menghapus dan memasukkan kembali data baru, sembari memformat atau menghitung apa pun di MySheet2 yang merujuk pada konten tersebut akan terus berfungsi dengan benar dengan set data baru dari lembar kerja tab target.
Inilah VBA, formula yang ditentukan pengguna, solusi. Ini berfungsi dengan 1, 2, & amp; 3 kolom huruf.
Masukkan yang berikut ini dalam modul kode:
Function COLUMNLETTER(Optional rng As Range) As String
'Returns the Column Letter of the top left cell in rng.
If rng Is Nothing Then Set rng = Application.Caller
COLUMNLETTER = Left(rng.Address(0, 0), IIf(rng.Column > 26, IIf(rng.Column > 702, 3, 2), 1))
End Function
= COLUMNLETTER () di sel mana pun akan mengembalikan huruf kolom sel. = COLUMNLETTER (B3) di sel mana pun akan kembali B .
Fungsi yang Ditentukan Pengguna ini berfungsi dengan baik saat membuat rumus umum di dalam fungsi INDIRECT.
Formula alamat berfungsi dengan mengembalikan nama kolom dan baris. Format yang dikembalikan akan selalu $(Column Letters)$(Row Numbers) - mis. $AA$2 atau $XAA$243556
Jika kita tahu bahwa $ akan selalu muncul pada karakter pertama, kita dapat menggunakan rumus pertengahan pertama untuk mulai menarik karakter setelah tanda $ pertama (mis. Karakter ke-2).
Kemudian, kita menemukan tanda $ berikutnya (karena kita tahu hanya akan ada dua) dan kita tahu berapa banyak karakter yang ada di antara tanda dolar pertama dan kedua. Sisanya adalah pengurangan sederhana.
LIN
danCOL
tetapi masalahnya adalah mereka mengembalikan nomor, dan saya perlu surat kolom untukINDIRECT
saya t.OFFSET
berfungsi bersamaan dengan, atau bukannya,INDIRECT
rumus dalam hal itu. Jika Anda ingin menggunakan string, saya juga memperbarui jawaban saya.Jawaban:
Anda dapat menggunakan
ROW
danCOLUMN
fungsi untuk melakukan ini. Jika Anda menghilangkan argumen untuk rumus tersebut, sel saat ini digunakan. Ini dapat langsung digunakan dengan ituOFFSET
fungsi , atau fungsi lain di mana Anda dapat menentukan baris dan kolom sebagai nilai numerik.Misalnya, jika Anda masuk
=ROW()
di sel D8, nilai yang dikembalikan adalah 8. Jika Anda memasukkan=COLUMN()
dalam sel yang sama, nilai yang dikembalikan adalah 4.Jika Anda menginginkan huruf kolom, Anda dapat menggunakan
CHAR
fungsi. Saya tidak merekomendasikan penggunaan huruf untuk mewakili kolom, karena segala sesuatunya menjadi rumit ketika beralih ke nama kolom huruf ganda (di mana hanya menggunakan angka lebih logis lagian)Apapun, jika Anda masih ingin mendapatkan surat kolom, Anda bisa menambahkan 64 ke nomor kolom (64 menjadi satu karakter kurang
A
), jadi pada contoh sebelumnya, jika Anda menetapkan nilai sel=CHAR(COLUMN()+64)
, nilai yang dikembalikan adalahD
. Jika Anda ingin nilai sel menjadi lokasi sel itu sendiri, rumus lengkapnya adalah=CHAR(COLUMN()+64) & ROW()
.Hanya FYI, saya mendapat 64 dari tabel ASCII. Anda juga bisa menggunakan
CODE
rumus, jadi rumus yang diperbarui menggunakan ini akan menjadi=CHAR(COLUMN() + CODE("A") - 1)
. Anda harus mengurangi 1 karena nilai minimumCOLUMN
selalu 1, dan kemudian nilai pengembalian minimum dari seluruh rumus akan menjadiB
.Namun, ini tidak akan berfungsi dengan kolom dua huruf. Dalam hal ini, Anda memerlukan rumus berikut untuk menguraikan kolom dua huruf dengan benar:
Saya tidak yakin apakah ada cara yang lebih mudah untuk melakukannya atau tidak, tetapi saya tahu itu bekerja dari sel
A1
untukZZ99
tanpa masalah. Namun, ini menggambarkan mengapa sebaiknya menghindari penggunaan pengidentifikasi kolom berbasis huruf, dan tetap menggunakan formula berbasis angka murni (mis. Menggunakan nomor kolom alih-alih menggunakanOFFSET
).sumber
OFFSET
alih-alih, yang memungkinkan Anda menentukan kolom sebagai angka. Terlepas dari itu, saya memperbarui jawaban dengan rumus untuk memperluasnya agar berfungsi dengan kolom dua huruf.However, this will not work with two-letter columns. In that case, you need the following formula to properly parse two-letter columns:
Coba fungsi berikut:
Penjelasan:
ADDRESS(row_num, column_num, [abs_num])
.[abs_num] = 4
= alamat relatif. Itu berarti tidak ada '$ dalam nilai yang dikembalikan. Untuk Kolom 'AB', kolomADDRESS
akan mengembalikan 'AB1'. Pengganti menghapus '1'.sumber
Coba ini
Ini memberi Anda tajuk kolom yang tepat, tanpa $ dll.
sumber
Ketik ini ke sel apa saja:
Español :
Inggris :
Anda dapat mengganti kolom () dengan nomor baris.
sumber
Untuk mendapatkan nama kolom saya menggunakan rumus berikut.
Untuk sel tertentu:
Untuk sel saat ini:
Coba variasi ini. Ini berfungsi pada kolom 3 huruf, dan tidak meninggalkan "$" di ujung depan:
sumber
Manual yang sedikit tetapi lebih sedikit VBA dan formula yang lebih sederhana:
=column()
=Address(1,A1)
$A$1
Setelah nilai disalin, temukan dan ganti
$
dan1
dengan kosong.sumber
Ini akan bekerja juga
sumber
Cara lain yang mungkin adalah menggunakan sesuatu seperti ini:
Dimana
colid
mengacu pada a bernama rentang yang akan Anda buat di tempat lain dalam buku kerja yang terdiri dari dua kolom yang berdekatan dengan beberapa baris: kolom pertama yang berisi angka 1 hingga n yang sesuai denganCOLUMN()
angka, yang kedua berisi huruf A - ZZ, atau seberapa banyak referensi kolom yang ingin Anda tampung. ItuROW()
tidak apa-apa karena mengembalikan nomor Baris.Jadi jika Anda menyalin string di atas ke sel A1 dari 'MySheet2', itu akan dievaluasi sebagai
=MySheet1!A1
, dan mengembalikan nilai yang ditemukannya di sel terkaitMySheet1
.Ini akan memungkinkan Anda, misalnya, untuk menggunakannya
MySheet1
sebagai area kerja, untuk menghapus dan memasukkan kembali data baru, sembari memformat atau menghitung apa pun diMySheet2
yang merujuk pada konten tersebut akan terus berfungsi dengan benar dengan set data baru dari lembar kerja tab target.sumber
Solusi untuk memoles versi Excel:
sumber
Inilah VBA, formula yang ditentukan pengguna, solusi. Ini berfungsi dengan 1, 2, & amp; 3 kolom huruf.
Masukkan yang berikut ini dalam modul kode:
= COLUMNLETTER () di sel mana pun akan mengembalikan huruf kolom sel.
= COLUMNLETTER (B3) di sel mana pun akan kembali B .
Fungsi yang Ditentukan Pengguna ini berfungsi dengan baik saat membuat rumus umum di dalam fungsi INDIRECT.
sumber
Formula alamat berfungsi dengan mengembalikan nama kolom dan baris. Format yang dikembalikan akan selalu
$(Column Letters)$(Row Numbers)
- mis.$AA$2
atau$XAA$243556
Jika kita tahu bahwa $ akan selalu muncul pada karakter pertama, kita dapat menggunakan rumus pertengahan pertama untuk mulai menarik karakter setelah tanda $ pertama (mis. Karakter ke-2).
Kemudian, kita menemukan tanda $ berikutnya (karena kita tahu hanya akan ada dua) dan kita tahu berapa banyak karakter yang ada di antara tanda dolar pertama dan kedua. Sisanya adalah pengurangan sederhana.
sumber
Inilah cara Anda dapat menemukan tajuk kolom (yaitu surat):
sumber
coba ini:
sumber
Formula berikut ini berfungsi di mana pun Anda meletakkannya (itu akan memberi Anda kembali nama kolom).
sumber
coba ini:
fungsi ini efektif hingga "ZY1" atau kolom = 701
sumber
sumber