Я работаю над листом для игры No Man's Sky и хотел бы помочь с созданием функции поиска, поскольку обычная функция фильтра не работает с вертикально объединенными ячейками. В R1 я введу слово/слова для поиска. В R2 будет размещен сценарий функции и отображен результат поиска. Результат поиска, который я хочу, - это строка в диапазоне (R4: R), в которой существует слово, которое я ищу. поэтому, если слово, которое я ищу в R1, — это Copper, и слово указано в строке 5 8 16, тогда я хочу, чтобы 5, 8, 16 отображались в R2. мне бы хотелось, чтобы функция также могла работать, даже если поисковые слова содержатся внутри раскрывающихся списков или если я решу добавить раскрывающийся список в ячейку ввода R1.
Я просмотрел различные функции, перечисленные в списке функций для Google Sheets, но не смог скомбинировать правильно один раз, чтобы заставить его работать. я не владею JavaScript, поэтому, вероятно, мне трудно создать рабочий скрипт для этого.
Поместите эту формулу в ячейку 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
Вздох. Я страстно ненавижу эти черные экраны; но вы также могли бы включить свою формулу в свой комментарий в виде текста. Разглагольствуйте ;) Думаю, у вас есть &$R2&""
там, где должно быть &$R2&"'"
. то есть вам не хватает одинарной кавычки между двойными кавычками. Если это не поможет, пожалуйста (я умоляю) включите электронную таблицу, потому что ваш поисковый запрос может иметь конечный пробел, или в данных может быть конечный пробел, или или или...
Я уже поделился ссылкой на образец листа, который я сделал вчера. как я видел, ztiaa попросил об этом в своем комментарии вверху. вот ссылка docs.google.com/spreadsheets/d/…
Я вставил формулу ответа в ячейку R2, и это сработало - ни ошибки синтаксического анализа, ни «несоответствия». Обратитесь к ячейке S2 вашей электронной таблицы для примера доказательства. Основная проблема заключается в том, что вы каким-то образом изменили ссылочную ячейку для условия поиска — это должно быть $R1 (или $R$1). У вас есть поисковый запрос в $ R2.
хорошо, теперь это работает, спасибо. Но теперь я также вижу, что ваша формула, похоже, не нравится, когда я применяю ее к столбцу, такому как Q, который имеет объединенные ячейки, поскольку затем он видит пустые ячейки, которые были объединены в качестве результата поиска... не видеть активированную медь в качестве результата поиска, если я ищу медь только в столбце R. Мне нужно, чтобы функция поиска была придирчива к тому, что считается действительным результатом поиска...
Кроме того... я понимаю, что в дальнейшем, когда я перечислю больше систем и планет, просмотр строк, перечисленных вашей функцией, станет непрактичным и довольно сложным... я думаю, что мне понадобится функция поиска, чтобы как-то выделить, изменив либо формат, либо текст или заполнить цвет ячейки или строк, которые были перечислены, и/или сделать перечисленные номера строк действующими в качестве ярлыков навигации по веб-странице, поэтому, когда я нажимаю один, мой лист автоматически прокручивается до этой строки для меня.
что-то подобное, вероятно, можно было бы внедрить в функцию поиска stackoverflow.com/questions/45888328/…, чтобы выделить ячейку, на которую ссылается результат поиска
Я только что нашел формулу, которая почти как раз то, что мне нужно. я думаю, вы могли бы легко реализовать его в формуле поиска, чтобы лист автоматически прокручивался вниз до выбранной строки результата (да, я проверял это в своем столбце P) =IF(LEN(P1)<2;"None ";ФИЛЬТР(ГИПЕРССЫЛКА("#gid=0&range=P"&СТРОКА(P4:P);P4:P);ЛЕВАЯ(P4:P;ДЛСТР(P1))=P1))
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).
Вы можете попробовать это в Cell R2
:
=join(", ",ifna(filter(row(R4:R),xmatch(R4:R,R1))))
неа не получилось. Вы можете проверить свою формулу самостоятельно на этом образце листа, который я сделал из своего настоящего docs.google.com/spreadsheets/d/…
Вы пробовали формулу в Cell R2
вашего образца листа и какую именно ошибку вы видите?
Это проблема локали. Если ваш регион = "Швеция", попробуйте =join(", ";ifna(filter(row(R4:R);xmatch(R4:R;R1))))
. Обратитесь к ячейке T2 вашей электронной таблицы.
пожалуйста, поделитесь образцом листа с примером ваших данных и желаемого результата. Вы можете Сделать анонимный образец документа.