Создайте функцию поиска в Google Таблицах, которая извлекает номера строк

Я работаю над листом для игры No Man's Sky и хотел бы помочь с созданием функции поиска, поскольку обычная функция фильтра не работает с вертикально объединенными ячейками. В R1 я введу слово/слова для поиска. В R2 будет размещен сценарий функции и отображен результат поиска. Результат поиска, который я хочу, - это строка в диапазоне (R4: R), в которой существует слово, которое я ищу. поэтому, если слово, которое я ищу в R1, — это Copper, и слово указано в строке 5 8 16, тогда я хочу, чтобы 5, 8, 16 отображались в R2. мне бы хотелось, чтобы функция также могла работать, даже если поисковые слова содержатся внутри раскрывающихся списков или если я решу добавить раскрывающийся список в ячейку ввода R1.

Я просмотрел различные функции, перечисленные в списке функций для Google Sheets, но не смог скомбинировать правильно один раз, чтобы заставить его работать. я не владею JavaScript, поэтому, вероятно, мне трудно создать рабочий скрипт для этого.

пожалуйста, поделитесь образцом листа с примером ваших данных и желаемого результата. Вы можете Сделать анонимный образец документа.

ztiaa 09.04.2023 16:39
docs.google.com/spreadsheets/d/…
StarLordPro 09.04.2023 21:16
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
85
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Поместите эту формулу в ячейку R2:

=iferror(arrayformula(join(",",query({R4:R,row(R4:R)},"select Col2 where Col1 is not null and Col1 contains '"&$R1&"'"))),"No Match")


ОБРАЗЕЦ

после ввода вашей формулы в R2 она сначала просто выдала мне ошибку синтаксического анализа, и я решил ее, заменив все , на ; . но теперь он просто говорит, что не соответствует, когда я ввожу слово в R1, поэтому я думаю, что он не работает должным образом. также образец не такой, как я предполагал, так как мне нужно, чтобы результат отображался в R2, то есть в той же ячейке, что и формула. i.stack.imgur.com/2w0S9.png

StarLordPro 09.04.2023 12:06

Вздох. Я страстно ненавижу эти черные экраны; но вы также могли бы включить свою формулу в свой комментарий в виде текста. Разглагольствуйте ;) Думаю, у вас есть &$R2&"" там, где должно быть &$R2&"'". то есть вам не хватает одинарной кавычки между двойными кавычками. Если это не поможет, пожалуйста (я умоляю) включите электронную таблицу, потому что ваш поисковый запрос может иметь конечный пробел, или в данных может быть конечный пробел, или или или...

Tedinoz 10.04.2023 03:05

Я уже поделился ссылкой на образец листа, который я сделал вчера. как я видел, ztiaa попросил об этом в своем комментарии вверху. вот ссылка docs.google.com/spreadsheets/d/…

StarLordPro 10.04.2023 15:11

Я вставил формулу ответа в ячейку R2, и это сработало - ни ошибки синтаксического анализа, ни «несоответствия». Обратитесь к ячейке S2 вашей электронной таблицы для примера доказательства. Основная проблема заключается в том, что вы каким-то образом изменили ссылочную ячейку для условия поиска — это должно быть $R1 (или $R$1). У вас есть поисковый запрос в $ R2.

Tedinoz 11.04.2023 05:03

хорошо, теперь это работает, спасибо. Но теперь я также вижу, что ваша формула, похоже, не нравится, когда я применяю ее к столбцу, такому как Q, который имеет объединенные ячейки, поскольку затем он видит пустые ячейки, которые были объединены в качестве результата поиска... не видеть активированную медь в качестве результата поиска, если я ищу медь только в столбце R. Мне нужно, чтобы функция поиска была придирчива к тому, что считается действительным результатом поиска...

StarLordPro 12.04.2023 16:19

Кроме того... я понимаю, что в дальнейшем, когда я перечислю больше систем и планет, просмотр строк, перечисленных вашей функцией, станет непрактичным и довольно сложным... я думаю, что мне понадобится функция поиска, чтобы как-то выделить, изменив либо формат, либо текст или заполнить цвет ячейки или строк, которые были перечислены, и/или сделать перечисленные номера строк действующими в качестве ярлыков навигации по веб-странице, поэтому, когда я нажимаю один, мой лист автоматически прокручивается до этой строки для меня.

StarLordPro 12.04.2023 16:27

что-то подобное, вероятно, можно было бы внедрить в функцию поиска stackoverflow.com/questions/45888328/…, чтобы выделить ячейку, на которую ссылается результат поиска

StarLordPro 12.04.2023 16:33

Я только что нашел формулу, которая почти как раз то, что мне нужно. я думаю, вы могли бы легко реализовать его в формуле поиска, чтобы лист автоматически прокручивался вниз до выбранной строки результата (да, я проверял это в своем столбце P) =IF(LEN(P1)<2;"None ";ФИЛЬТР(ГИПЕРССЫЛКА("#gid=0&range=P"&СТРОКА(P‌​4:P);P4:P);ЛЕВАЯ(P4:P‌​;ДЛСТР(P1))=P1))

StarLordPro 12.04.2023 16:55
merged cells, Activated Copper, search function to somehow highlight, something like this could probably be implemented, I just found a formula that sort of is almost just what i need. Я (и, возможно, @rockinfreakshow) признал некоторые из этих проблем. Но... Вы задали конкретный вопрос, предоставили конкретные данные и получили не один, а два хороших ответа. При всем уважении эти дополнительные вопросы следует поднимать как новые вопросы. По касательной, пожалуйста, рассмотрите accepting один из этих ответов (лично я поддерживаю ответ rockinfreakshow).
Tedinoz 13.04.2023 04:07
Ответ принят как подходящий

Вы можете попробовать это в Cell R2:

=join(", ",ifna(filter(row(R4:R),xmatch(R4:R,R1))))

неа не получилось. Вы можете проверить свою формулу самостоятельно на этом образце листа, который я сделал из своего настоящего docs.google.com/spreadsheets/d/…

StarLordPro 11.04.2023 15:47

Вы пробовали формулу в Cell R2 вашего образца листа и какую именно ошибку вы видите?

rockinfreakshow 11.04.2023 15:53

Это проблема локали. Если ваш регион = "Швеция", попробуйте =join(", ";ifna(filter(row(R4:R);xmatch(R4:R;R1)))). Обратитесь к ячейке T2 вашей электронной таблицы.

Tedinoz 12.04.2023 15:27

Другие вопросы по теме

Могу ли я использовать эту формулу для нескольких столбцов?
Как сделать так, чтобы в таблице суммировались транзакции только в том случае, если они принадлежат одному и тому же клиенту?
Как подсчитать в столбце, сколько строк осталось, пока я не получу определенное значение в другом столбце?
Как получить сообщение об ошибке из ячейки листа Google с помощью скрипта Google Apps?
Условное форматирование, если ячейки в столбце содержат точное совпадение, частичное или ни одно из значений в ячейке
ЗАПРОС IMPORTRANGE, где на столбцы ссылаются именованный диапазон или заголовок?
Застрял на запросе для электронной таблицы торговли акциями
Аргумент обходного пути должен быть ошибкой диапазона при использовании СУММЕСЛИ + ФИЛЬТР
Как извлечь определенные слова/текст из ячейки в другую ячейку
Диапазон фильтрации на основе раскрывающегося списка проверки данных

Похожие вопросы

Могу ли я использовать эту формулу для нескольких столбцов?
Как сделать так, чтобы в таблице суммировались транзакции только в том случае, если они принадлежат одному и тому же клиенту?
Как подсчитать в столбце, сколько строк осталось, пока я не получу определенное значение в другом столбце?
Есть ли способ в скрипте Google Apps перечислить файлы, расположенные в нескольких папках моего Google Диска, на одной вкладке Google Sheets?
Улучшить производительность формулы Google Sheet
Скопируйте лист Google с учетной записью службы, а затем передайте право собственности другому пользователю gspread 5.7.1
Функция запроса Google Таблиц - где столбец не равен определенному диапазону ячеек
Как получить сообщение об ошибке из ячейки листа Google с помощью скрипта Google Apps?
Условное форматирование, если ячейки в столбце содержат точное совпадение, частичное или ни одно из значений в ячейке
ЗАПРОС IMPORTRANGE, где на столбцы ссылаются именованный диапазон или заголовок?