Saya seorang pemula di spreadsheet, jadi saya harap Anda akan memaafkan saya jika saya mengajukan pertanyaan yang sangat jelas.
Apakah mungkin untuk menggunakan tag di Excel / Google Spreadsheet? Saya membuat spreadsheet untuk mencatat semua artikel dan buku yang saya baca. Katakan aku membaca "Aku, Claudius". Saya ingin memberikan tag ini: sejarah, fiksi, biografi, disabilitas, politik, drama. Kemudian, jika saya ingin menampilkan semua artikel / buku yang ditandai dengan "politik", saya mungkin dapat mencari / menampilkan / memutar dengan tag itu.
Mungkin sebaiknya, semua tag harus dalam satu sel dengan setiap kata dipisahkan oleh koma. Jika setiap kata berada dalam selnya sendiri, itu akan membuat tabelnya benar-benar berantakan, saya pikir.
Saya juga terbuka untuk solusi pelabelan lainnya.
Terima kasih!
sumber
Jawaban:
Sejauh yang saya tahu tidak ada fitur bawaan yang dapat mengurai dan meringkas tag yang dipisahkan koma di Excel. Anda tentu saja dapat membuat solusi sendiri dengan fungsi lembar kerja dan sedikit VBA. Inilah solusi cepat untuk melakukan ini.
Langkah 1 : Tekan Alt+ F11untuk membuka panel editor VBA di Excel. Masukkan modul baru dan rekatkan dalam kode ini untuk fungsi khusus.
Fungsi ini memungkinkan Anda membuat daftar yang dipisahkan koma untuk meringkas data tag yang Anda miliki.
Langkah 2 : Di lembar kerja, masukkan sel (H2 pada contoh di bawah) tag yang ingin Anda cari. Di sel di sebelah kanan, masukkan rumus berikut dengan menekan Ctrl+ Shift+ Enter.
Dengan menekan Ctrl+ Shift+ Enter, Anda memasukkan rumus sebagai rumus array. Itu akan muncul dikelilingi oleh
{...}
di bilah rumus. Perhatikan bahwa dalam rumus$B$2:$B$6
adalah rentang yang menyimpan semua tag untuk item yang tercantum dalam$A$2:$A$6
.EDIT:
Jika Anda tidak keberatan kecocokan Anda dicantumkan dalam kolom alih-alih dalam daftar dalam satu sel, Anda dapat mengembalikan kecocokan untuk tag menggunakan hanya fungsi lembar kerja.
Dimana judul Anda berada di
Column A
, tag berada dalamColumn B
, dan tag yang Anda cari adalahH2
, Anda dapat menggunakan berikut formula array diI2
dan mengisi bawah sejauh yang Anda perlu:Rumus berfungsi dengan terlebih dahulu membentuk array angka berdasarkan pada apakah tag di setiap baris berisi istilah pencarian. Jika kecocokan ditemukan, nomor baris disimpan dalam array. Jika tidak ditemukan, 2000000 disimpan dalam array. Selanjutnya,
SMALL(<array>,ROW()-1)
bagian dari rumus mengembalikan nilaiROW()-1
terkecil dari array. Selanjutnya, nilai ini diteruskan sebagai argumen indeks keINDEX()
fungsi, di mana nilai pada indeks itu dalam array judul dikembalikan. Jika angka lebih besar dari jumlah baris dalam array judul diteruskanINDEX()
sebagai argumen, kesalahan dikembalikan. Karena 2000000 dilewatkan sebagai argumen ketika tidak ada kecocokan yang ditemukan, kesalahan dikembalikan. TheIFERROR()
fungsi kemudian kembali""
dalam kasus ini.Penting untuk memahami bagaimana
ROW()
digunakan dalam formula ini. Jika Anda ingin menampilkan daftar hasil Anda yang dimulai pada baris yang berbeda, Anda harus menyesuaikan argumen kedua dariSMALL()
fungsi sehingga mengembalikan nilai terkecil pertama dari array. Misalnya, jika daftar hasil Anda dimulai di Baris 1 bukannya Baris 2, Anda akan menggunakannyaSMALL(...,ROW())
sebagai gantinyaSMALL(...,ROW()-1)
.Juga, jika daftar judul dan tag Anda tidak dimulai di Baris 1, Anda perlu menyesuaikan formula juga. Argumen kedua dari
IF()
fungsi harus disesuaikan sehingga kecocokan di baris pertama data Anda mengembalikan 1. Misalnya, jika daftar judul Anda dimulai di Baris 2 dan bukan Baris 1, Anda akan memerlukan rumus untuk dimasukkanIF(...,ROW($A$2:$A$7)-1,...)
sebagai gantinyaIF(...,ROW($A$1:$A$6),...)
.sumber
CONCATENATE
fungsi di Excel tidak dapat mengambil array sebagai argumen (itu hanya membaca item pertama dari array jika Anda mencobanya). Fungsi VBA dibuat untuk membuat daftar yang dipisahkan koma dari array nilai.Saat melakukan ini secara programatik bekerja dengan baik dalam beberapa kasus saya menemukan pendekatan manual bekerja untuk saya. Menggunakan kolom untuk tag Anda dapat dengan mudah menandai item baris dengan memasukkan 0 ke dalam kolom. Anda kemudian memiliki satu baris dan memasukkan 1s di setiap kolom tag untuk baris itu (Anda dapat mewarnai baris ini). Kemudian ketika Anda mengurutkan berdasarkan salah satu tag, baris 1s (biru) bertindak sebagai pemisah. Antara hasil yang difilter (0s) dan yang lainnya (_).
Ini memiliki beberapa keunggulan. 1. Anda tidak harus mengetik tag setiap kali. 2. Anda dapat dengan mudah melintasi referensi untuk memeriksa apakah Anda memiliki duplikat atau item serupa yang dapat dikurangi menjadi satu.
sumber
Ide lain:
Gunakan fungsi filter bawaan. Saring berdasarkan kolom Tag, lalu Anda bisa mencari baris yang berisi tag yang diberikan.
Baris dengan daftar tag: komedi, horor, romansa
akan muncul ketika mencari salah satu dari ketiga tag tersebut.
sumber
Pendekatan non-VBA saya adalah mencantumkan tag dalam satu kolom (misalkan kolom H), memisahkan item dengan koma. Dari sana, saya menggunakan kombinasi "Teks ke Kolom" dan "Hapus Duplikat" untuk mendapatkan daftar tag saya. Saya menyalin melewati ini ke baris tajuk lembar utama saya (dalam hal ini, dimulai pada kolom L. Kemudian, di setiap sel di bawah header tag individu, masukkan yang berikut ini:
Ini memberikan yang terbaik dari kedua dunia - kolom tag (H) mudah untuk dibaca orang; kolom tag individual (dengan 0 dan 1) mudah dibaca oleh komputer. Ini dinamis jika Anda tetap berada di dalam set tag yang diberikan; jika tidak, Anda perlu menambahkan tag baru ke baris tajuk, lalu salin rumus Anda.
Dari sana, Pivot-Tables adalah teman Anda.
sumber
Bagi saya tidak jelas bagaimana Anda ingin menggunakan tag. Tetapi di Google Sheets, Anda dapat menggunakan fungsi SPLIT () untuk membagi serangkaian tag (dibatasi oleh spasi, koma, atau apa pun yang Anda inginkan) menjadi beberapa sel lain, dan saya yakin bahkan Excel memiliki fungsi yang dapat mencari sel untuk tag.
sumber