Dapatkan konten sel yang diberi nomor baris dan kolom

96

Saya ingin mendapatkan konten sel yang diberi nomor baris dan kolomnya. Nomor baris dan kolom disimpan dalam sel (di sini B1, B2). Saya tahu solusi berikut berfungsi, tetapi mereka merasa agak hack.

Sol 1

=CELL("contents",INDIRECT(ADDRESS(B1,B2)))

Sol 2

=CELL("contents",OFFSET($A$1, B1-1,B2-1))

Apakah ada metode yang tidak kalah verbose? (seperti = CellValue (baris, kolom) atau apa pun)?

Edit / Klarifikasi: Saya hanya ingin menggunakan rumus lembar kerja excel. Tidak ada VBA. Singkatnya, saya cukup banyak mencari metode yang setara dengan VBA Cells () sebagai Formula excel.

Philipp
sumber
Bisakah kita mendapatkan lebih banyak konteks? Apakah Anda hanya menggunakan rumus Excel? VBA? Metode lain?
Saladin Akara

Jawaban:

141

Anda tidak memerlukan bagian CELL () dari rumus Anda:

=INDIRECT(ADDRESS(B1,B2))

atau

=OFFSET($A$1, B1-1,B2-1)

keduanya akan bekerja. Perhatikan bahwa keduanya INDIRECTdan OFFSETmerupakan fungsi yang mudah menguap. Fungsi volatil dapat memperlambat penghitungan karena dihitung pada setiap penghitungan ulang.

Charles Williams
sumber
Ini cukup berguna sehingga saya ingin melihatnya diedit agar memiliki jumlah tanda kurung penutup yang tepat.
Wyck
6
Mengingat popularitas pertanyaan / jawaban ini, akan sangat bagus untuk memiliki sedikit kalimat di sini tentang apa itu fungsi volatile .
LondonRob
Perhatikan bahwa dengan formulir kedua, bergantung pada $ a $ 1, Anda diharuskan untuk tidak memindahkan $ a $ 1 dengan cara apa pun dalam pengeditan lembar selanjutnya.
Erk
INDIRECT+ ADDRESSadalah cara untuk pergi. Excel dalam bahasa saya diterjemahkan OFFSETmenjadi 2 kata yang dipisahkan oleh titik. Itu yang terburuk (bersama dengan umlaut di nama fungsi)!
Bitterblue
29

Coba = indeks (ARRAY, ROW, COLUMN)

dimana: Array: pilih seluruh sheet Row, Column: Referensi baris dan kolom Anda

Itu seharusnya lebih mudah dipahami oleh mereka yang melihat rumusnya.

Albert Shenko
sumber
2

Butuh beberapa saat bagi saya, tetapi inilah cara saya membuatnya dinamis. Itu tidak tergantung pada tabel yang diurutkan.

Pertama saya mulai dengan kolom nama negara (Kolom A) dan kolom pesawat di setiap negara bagian (Kolom B). (Baris 1 adalah baris header).

Menemukan sel yang berisi nomor pesawat adalah:

=MATCH(MAX($B$2:$B$54),$B$2:$B$54,0)+MIN(ROW($B$2:$B$54))-1

Saya memasukkannya ke dalam sel dan kemudian memberi nama sel itu, "StateRow". Kemudian menggunakan tip dari atas, saya akhiri dengan ini:

=INDIRECT(ADDRESS(StateRow,1))

Ini mengembalikan nama negara bagian dari nilai dinamis di baris "StateRow", kolom 1

Sekarang, karena nilai di kolom hitung berubah seiring waktu karena lebih banyak data yang dimasukkan, saya selalu tahu negara bagian mana yang memiliki pesawat paling banyak.

pengguna3573562
sumber