Я новичок в электронных таблицах, поэтому я надеюсь, что вы простите меня, если я задам очень очевидный вопрос.
Можно ли использовать теги в Excel / Google Spreadsheet? Я создаю электронную таблицу для регистрации всех статей и книг, которые читаю. Скажи, что я читаю "Я, Клавдий". Я хочу дать ему эти теги: история, художественная литература, биография, инвалидность, политика, драма. Затем, если я хочу отобразить все статьи / книги, отмеченные тегом «policy», я могу, возможно, выполнить поиск / отображение / поворот с этим тегом.
Может быть, желательно, чтобы все теги были в одной ячейке, а каждое слово отделялось запятой. Я думаю, что если бы каждое слово находилось в отдельной ячейке, это сделало бы стол действительно беспорядочным.
Я открыт для других решений в области маркировки.
Благодарность!
Ответы:
Насколько я знаю, в Excel нет встроенных функций, которые могли бы анализировать и суммировать разделенные запятыми теги. Конечно, вы можете создать свое собственное решение с функциями рабочего листа и небольшим VBA. Вот быстрое решение для этого.
Шаг 1 : Нажмите Alt+, F11чтобы открыть панель редактора VBA в Excel. Вставьте новый модуль и вставьте в этот код для пользовательской функции.
Эта функция позволит вам создавать разделенные запятыми списки, чтобы суммировать данные тега, которые у вас есть.
Шаг 2 : В листе введите в ячейку (H2 в примере ниже) тег, который вы хотите найти. В ячейку справа введите следующую формулу, нажав Ctrl+ Shift+ Enter.
Нажав Ctrl+ Shift+ Enter, вы вводите формулу в виде формулы массива. Он будет отображаться
{...}
в строке формул. Обратите внимание, что в формуле$B$2:$B$6
указан диапазон, содержащий все теги для элементов, перечисленных в$A$2:$A$6
.РЕДАКТИРОВАТЬ:
Если вы не возражаете против того, чтобы ваши совпадения были перечислены в столбце, а не в списке в одной ячейке, вы можете вернуть совпадения для тегов, используя только функции листа.
Где ваши названия в
Column A
этих теги находятся вColumn B
, а тег вы ищете вH2
, вы можете использовать следующую формулу массива вI2
и заполнить вниз, насколько вам нужно:Формула работает, сначала формируя массив чисел на основе того, содержит ли теги в каждой строке искомый термин. Если совпадение найдено, номер строки сохраняется в массиве. Если он не найден, 2000000 сохраняется в массиве. Затем
SMALL(<array>,ROW()-1)
часть формулы возвращаетROW()-1
наименьшее значение из массива. Затем это значение передается в качестве аргумента индексаINDEX()
функции, где возвращается значение этого индекса в массиве заголовков. ЕслиINDEX()
в качестве аргумента передается число, превышающее количество строк в массиве заголовков, возвращается ошибка. Поскольку 2000000 передается в качестве аргумента, когда совпадений не найдено, возвращается ошибка. ЗатемIFERROR()
функция возвращается""
в этом случае.Важно понять, как
ROW()
используется в этой формуле. Если вы хотите отобразить список результатов, начиная с другой строки, вам нужно настроить второй аргументSMALL()
функции так, чтобы он возвращал первое наименьшее значение из массива. Например, если ваш список результатов начинается со строки 1 вместо строки 2, вы должны использоватьSMALL(...,ROW())
вместоSMALL(...,ROW()-1)
.Кроме того, если ваш список заголовков и тегов не начинается в строке 1, вам также необходимо изменить формулу. Второй аргумент
IF()
функции должен быть скорректирован так, чтобы совпадение в первой строке ваших данных возвращало 1. Например, если ваш список заголовков начинается со строки 2 вместо строки 1, вам потребуется формула для включенияIF(...,ROW($A$2:$A$7)-1,...)
вместоIF(...,ROW($A$1:$A$6),...)
.источник
CONCATENATE
функция в Excel не может принимать массив в качестве аргумента (она только читает первый элемент из массива, если вы попробуете его). Функция VBA предназначена для создания разделенных запятыми списков из массива значений.Хотя в некоторых случаях это работает программно, я обнаружил, что ручной подход работает для меня. Используя столбцы для тегов, вы можете легко пометить элемент строки, введя 0 в столбце. Затем у вас есть одна строка и введите 1 в каждом столбце тега для этой строки (вы можете покрасить эту строку). Затем, когда вы сортируете по одному из тегов, строка 1с (синяя) действует как разделитель. Между вашими отфильтрованными результатами (0 с) и всем остальным (_).
Это имеет несколько преимуществ. 1. Вам не нужно каждый раз вводить тег. 2. Вы можете легко перекрестную ссылку, чтобы проверить, если у вас есть дубликаты или аналогичные элементы, которые могут быть уменьшены до одного.
источник
Еще одна идея:
Используйте встроенные функции фильтра. Фильтруйте по столбцу Теги, затем вы можете искать строки, содержащие данный тег.
Строка со списком тегов: комедия, ужасы, мелодрама
будет отображаться при поиске любого из этих трех тегов.
источник
Мой не VBA подход состоит в том, чтобы перечислять теги в одном столбце (скажем, в столбце H), разделяя элементы запятыми. Оттуда я использую комбинацию «Текст в столбцы» и «Удалить дубликаты», чтобы получить мой список тегов. Я копирую это в строку заголовка моего основного листа (в данном случае, начиная со столбца L. Затем, в каждой ячейке под заголовками отдельных тегов, введите следующее:
Это дает лучшее из обоих миров - столбец тегов (H) легко читается; отдельные столбцы тегов (с 0 и 1) легко читаются компьютером. Это динамично, если вы остаетесь в заданном наборе тегов; если нет, вам нужно добавить новый тег в строку заголовка, а затем скопировать формулы.
Оттуда сводные таблицы - ваш друг.
источник
Мне не совсем понятно, как вы хотите использовать теги. Но в Google Sheets вы можете использовать функцию SPLIT (), чтобы разбить строку тегов (разделенных пробелами, запятыми или чем угодно) на несколько других ячеек, и я уверен, что даже в Excel есть функция, которая может искать ячейка для тега.
источник