Попытка отфильтровать запрос, используя выпадающий список проверки данных - числовые опции работают, но не комбинация цифр / букв - PullRequest
0 голосов
/ 03 февраля 2020

Вот копия моего листа https://docs.google.com/spreadsheets/d/1b7ofD9f02yKiIvGYfCBi_GdhkRtgTAoY2NpftJmZaDQ/edit?usp=sharing

Таким образом, мой запрос находится на передней вкладке «Общий» в D1

=query(Data!A1:G,"SELECT * WHERE 1=1 "&IF(A2="All Raids",""," AND A contains "&A2&" ") &IF(B2="All Classes",""," AND LOWER(B) = LOWER('"&B2&"') "),1)

На листе данных У меня есть люди слушают в рейдах 1,2 и 3 .. и это работает нормально. Однако, если бы я изменил значение на что-то вроде BWL1 или BWL2, оно не будет отображаться.

Я получил этот код из учебного пособия по YouTube, так что я не понимаю его на 100%, но в основном часть "a2=all raids","" состоит просто в удалении любых фильтров, а остальное фильтруется моими выпадающими меню. , & A2 & и & B2 &.

Есть идеи?

Я пытался использовать A CONTAINS "&A2" вместо A = "&A2&", я просто не могу найти обходной путь, где работает любое значение (числовое + буквенное), указанное в столбце A моей таблицы данных.

Заранее спасибо за потраченное время, надеюсь, в этом есть смысл:)

1 Ответ

1 голос
/ 03 февраля 2020

Это известная проблема с функцией query (): query () имеет проблемы со смешанными типами данных (цифры c и текст в столбце A). Чтобы избежать этого, вы можете преобразовать столбец A в текст. Посмотрите, работает ли эта формула

=query({ArrayFormula(to_text(Data!A1:A)), Data!B1:G},"SELECT * WHERE 1=1 "&IF(A2="All Raids","", " AND Col1 contains '"&A2&"'") &IF(B2="All Classes",""," AND LOWER(Col2) = LOWER('"&B2&"') "),1)

Обратите внимание, что из-за использования 'contains', когда в A2 выбрано '1', оно также покажет строки, содержащие BWL1. Если вы не хотите этого, замените «содержит» на «=».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...