Jestem początkującą w arkuszach kalkulacyjnych, więc mam nadzieję, że wybaczysz mi, jeśli zadam super oczywiste pytanie.
Czy można używać tagów w arkuszu kalkulacyjnym Excel / Google? Tworzę arkusz kalkulacyjny, aby rejestrować wszystkie artykuły i książki, które czytam. Powiedzmy, że czytam „Ja, Klaudiusz”. Chcę nadać im następujące tagi: historia, fikcja, biografia, niepełnosprawność, polityka, dramat. Następnie, jeśli chcę wyświetlić wszystkie artykuły / książki oznaczone „polityką”, mogę wyszukać / wyświetlić / przestawić za pomocą tego tagu.
Być może najlepiej tagi powinny znajdować się w jednej komórce, a każde słowo należy oddzielić przecinkiem. Gdyby każde słowo znajdowało się we własnej komórce, myślę, że spowodowałoby to bałagan w tabeli.
Jestem również otwarty na inne rozwiązania w zakresie etykietowania.
Dzięki!
źródło
Odpowiedzi:
O ile mi wiadomo, w programie Excel nie ma wbudowanych funkcji, które mogą analizować i podsumowywać tagi rozdzielane przecinkami. Możesz oczywiście stworzyć własne rozwiązanie z funkcjami arkusza i odrobiną VBA. Oto szybkie rozwiązanie tego problemu.
Krok 1 : Naciśnij Alt+, F11aby otworzyć panel edytora VBA w programie Excel. Wstaw nowy moduł i wklej ten kod dla funkcji niestandardowej.
Ta funkcja umożliwia tworzenie list oddzielonych przecinkami w celu podsumowania posiadanych danych znaczników.
Krok 2 : W arkuszu wprowadź w komórce (H2 w poniższym przykładzie) znacznik, który chcesz wyszukać. W komórce po prawej wprowadź następującą formułę, naciskając Ctrl+ Shift+ Enter.
Naciśnięcie Ctrl+ Shift+ Enterpowoduje wprowadzenie formuły jako formuły tablicowej. Zostanie wyświetlony w otoczeniu
{...}
na pasku formuły. Zauważ, że we wzorze$B$2:$B$6
jest zakres, który zawiera wszystkie tagi dla pozycji wymienionych w$A$2:$A$6
.EDYCJA:
Jeśli nie przeszkadza ci to, że dopasowania są wyświetlane w kolumnie zamiast na liście w jednej komórce, możesz zwrócić dopasowania dla znaczników, używając tylko funkcji arkusza.
Gdzie są tytuły
Column A
, znaczniki sąColumn B
, a tag szukasz jestH2
, można użyć następującej formuły tablicowej wI2
i wypełnić w dół tak daleko, jak trzeba:Formuła działa najpierw poprzez utworzenie tablicy liczb na podstawie tego, czy znaczniki w każdym wierszu zawierają wyszukiwane hasło. Jeśli znaleziono dopasowanie, numer wiersza jest zapisywany w tablicy. Jeśli nie zostanie znaleziony, 2000000 zostanie zapisany w tablicy. Następnie
SMALL(<array>,ROW()-1)
część formuły zwracaROW()-1
najmniejszą wartość z tablicy. Następnie ta wartość jest przekazywana jako argument indeksu doINDEX()
funkcji, gdzie zwracana jest wartość tego indeksu w tablicy tytułów. Jeśli liczba większa niż liczba wierszy w tablicy tytułowej zostanie przekazanaINDEX()
jako argument, zwracany jest błąd. Ponieważ 2000000 jest przekazywany jako argument, gdy nie znaleziono żadnych dopasowań, zwracany jest błąd. W takim przypadkuIFERROR()
funkcja powraca""
.Ważne jest, aby zrozumieć, jak
ROW()
jest stosowany w tej formule. Jeśli chcesz wyświetlić listę wyników zaczynającą się w innym wierszu, musisz dostosować drugi argumentSMALL()
funkcji, aby zwracała pierwszą najmniejszą wartość z tablicy. Na przykład, jeśli lista wyników zaczyna się w wierszu 1 zamiast w wierszu 2, należy użyćSMALL(...,ROW())
zamiastSMALL(...,ROW()-1)
.Ponadto, jeśli lista tytułów i tagów nie rozpoczyna się w wierszu 1, musisz również dostosować formułę. Drugi argument
IF()
funkcji musi zostać dostosowany, aby dopasowanie w pierwszym wierszu danych zwróciło 1. Np. Jeśli lista tytułów rozpoczyna się w wierszu 2 zamiast w wierszu 1, konieczne będzie uwzględnienie formułyIF(...,ROW($A$2:$A$7)-1,...)
zamiastIF(...,ROW($A$1:$A$6),...)
.źródło
CONCATENATE
funkcja w programie Excel nie może przyjąć tablicy jako argumentu (odczytuje tylko pierwszy element z tablicy, jeśli spróbujesz). Funkcja VBA służy do tworzenia list oddzielonych przecinkami z tablicy wartości.Podczas gdy programowanie to działa dobrze w niektórych przypadkach, okazało się, że zadziałało dla mnie ręczne podejście. Używając kolumn do znaczników, możesz łatwo oznaczyć element wiersza, wpisując 0 w kolumnie. Następnie masz jeden wiersz i wpisujesz 1s w każdej kolumnie znaczników dla tego wiersza (możesz pokolorować ten wiersz). Następnie podczas sortowania według jednego ze znaczników wiersz 1s (niebieski) działa jak separator. Pomiędzy przefiltrowanymi wynikami (0) a wszystkim innym (_).
Ma to kilka zalet. 1. Nie musisz za każdym razem wpisywać tagu. 2. Możesz łatwo sprawdzić, czy masz zduplikowane lub podobne elementy, które można zredukować do jednego.
źródło
Inny pomysł:
Skorzystaj z wbudowanej funkcji filtra. Filtruj według kolumny Tagi, a następnie możesz wyszukiwać wiersze zawierające dany tag.
Wiersz z listą tagów: komedia, horror, romans
pojawi się podczas wyszukiwania któregokolwiek z tych trzech tagów.
źródło
Moje podejście inne niż VBA polega na wyszczególnieniu znaczników w jednej kolumnie (powiedzmy w kolumnie H), oddzielając elementy przecinkami. Następnie używam kombinacji „Tekst do kolumn” i „Usuń duplikaty”, aby uzyskać moją listę tagów. Kopiuję to do wiersza nagłówka mojego głównego arkusza (w tym przypadku, zaczynając od kolumny L. Następnie w każdej komórce poniżej poszczególnych nagłówków znaczników wpisz:
To daje najlepsze z obu światów - kolumna znaczników (H) jest łatwa do odczytania; poszczególne kolumny znaczników (z ich zerami i zerami) są łatwe do odczytania przez komputer. Jest dynamiczny, jeśli pozostajesz w obrębie danego zestawu tagów; jeśli nie, musisz dodać nowy tag do wiersza nagłówka, a następnie skopiować formuły.
Stamtąd tabele przestawne są twoim przyjacielem.
źródło
Nie jest dla mnie jasne, w jaki sposób chcesz używać tagów. Ale w Arkuszach Google możesz użyć funkcji SPLIT (), aby podzielić ciąg tagów (rozdzielonych spacjami, przecinkami lub cokolwiek chcesz) na kilka innych komórek i jestem pewien, że nawet Excel ma funkcję, która może wyszukiwać komórka dla znacznika.
źródło