Referensi dinamis Kolom Tabel Bernama (melalui konten sel) di Excel

12

Bagaimana cara mereferensikan kolom tabel Excel secara dinamis di Excel 2007? Saya ingin referensi kolom bernama dari tabel bernama dan kolom referensi akan bervariasi dengan nilai sel.

Saya punya tabel di Excel (sebut saja Table1 ). Saya ingin merujuk salah satu kolomnya dan COUNTangka-angka di kolom itu. Saya ingin mengidentifikasi kolom yang direferensikan secara dinamis dari nilai di sel lain ( A1) sehingga saya dapat mencapai hasil berikut: Ketika saya berubah A1, rumus yang menghitung Table1 [ DynamicallyReferencedColumnName ] akan diperbarui ke referensi baru.

Contoh:

  • Jika A1= names    maka rumusnya akan sama COUNT(Table1[names]).
  • Jika A1= lastnamemaka rumusnya akan sama COUNT(Table1[lastname]).

Saya mencoba menggunakan =COUNT(Table1[INDIRECT("$A$1")]), tetapi Excel mengatakan formula berisi kesalahan.

Bagaimana saya bisa melakukan ini?


PS Saya menemukan dokumen MSDN ini yang mungkin relevan: perhitungan ulang Excel .

rcphq
sumber
Versi Excel apa yang Anda gunakan?
CharlieRB
Saat ini menggunakan Excel 2007
rcphq
Saya pikir pertanyaan ini juga dapat diulangi sebagai: "referensi komponen dinamis dari referensi terstruktur di excel".
jiggunjer

Jawaban:

12

Anda hampir saja melakukannya INDIRECT(), tetapi logika Anda agak kacau. Coba ini sebagai gantinya:

=COUNT(INDIRECT("Table1["&A1&"]"))

Kunci untuk diingat adalah bahwa INDIRECT()hanya membutuhkan teks (yaitu, string) untuk argumen pertama. Dengan demikian, Anda harus meneruskan semua bagian referensi tabel ke fungsi sebagai teks.

Excellll
sumber
memang itu berhasil, saya perlu referensi seluruh tabel. ini berhasil! Terima kasih!
rcphq
14

Menggunakan metode INDIRECT berfungsi, tetapi sebaiknya dihindari jika memungkinkan karena merupakan fungsi yang tidak stabil dan dapat memiliki dampak komputasi yang sangat besar pada spreadsheet Anda.

Alternatif non-volatile yang memenuhi apa yang Anda inginkan adalah menggunakan INDEX / MATCH

COUNT(INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)))

-Tim

Tim Reczek
sumber
Excelent, saya benar-benar menemukan metode ini di kemudian hari dan telah menggunakannya sejak saat itu. Secara kebetulan saya mulai melihat perlambatan besar pada spreadsheet yang lama di mana saya menggunakan tidak langsung pada lebih dari selusin lembar. Terima kasih!
rcphq
2

langkah pertama, atur sel teks yang berisi nama kolom yang akan Anda referensi (misalnya $ A $ 1) $ A $ 1 berisi "Column2" misalnya.

kemudian untuk menemukan jumlah kolom yang dirujuk $ A $ 1 adalah = Count (tidak langsung ("Table1 [" & $ a $ 1 & "]"))

metode tidak langsung ini dapat digunakan untuk membangun semua bagian dari referensi tabel dan dapat misalnya juga diatur untuk mencari dari tabel yang berbeda

tip. jika sel $ a $ 1 divalidasi sebagai daftar drop-down yang menunjuk ke header dari tabel tunggal, maka setiap perubahan pada jumlah kolom dalam tabel dari setiap perubahan pada judul header akan diambil.

Thompson.Steve.J
sumber
1
(1) Langkah pertama: masukkan nama kolom yang diinginkan ke dalam sel seperti A1.  OP telah melakukan ini, dan mengatakannya dalam pertanyaan.   (2) Langkah kedua adalah salinan jawaban Excellll yang tepat . (4) Mengkonfigurasi A1sebagai dropdown dari nama kolom yang valid sepertinya ide yang bagus, tapi saya tidak mengerti sisa paragraf terakhir dari jawaban.
Scott
1

Berikut ini adalah artikel yang sangat bagus mengenai referensi terstruktur di Excel. Tampaknya ini bekerja sedikit berbeda di Excel 2010 daripada di Excel 2007.

Menggunakan referensi terstruktur dengan tabel Excel

Pada dasarnya Anda akan mereferensikan tabel dan kemudian kolom di dalam tabel.

Tabel Excel Umum

Dalam contoh ini Anda dapat merujuk Tabel 1 Kolom 1 seperti ini:

=COUNT(Table1[Column1])

Anda bisa memberi nama kolom tajuk di tabel Anda. Jika saya mengganti nama Column1 menjadi Penjualan, rumusnya akan menjadi:

=COUNT(Table1[Sales])
wbeard52
sumber
Ya tabel saya dinamai dengan benar dengan kolom yang berbeda, apa yang saya inginkan adalah metode untuk KATAKAN excel kolom apa yang saya inginkan tergantung pada nilai sel, sesuatu seperti ini =COUNT(Table1[A1])Di mana A1 adalah sel saya ingin berisi nama
kolom