Выберите конкретную c строку и диапазон строк из указанных c столбцов с запросом - PullRequest
2 голосов
/ 21 января 2020

У меня есть следующая электронная таблица:

|  |   A    |    B   |    C   |   D    |   E    |
| 1| Labels | Item 1 | Item 2 | Item 3 | Item 4 |
| 2| name   |   yes  |  no    |  yes   |  yes   |
| 3| price  |   yes  |  no    |  yes   |  yes   |
| 4| tag    |   yes  |  no    |  yes   |  yes   |
| 5| desc   |   yes  |  no    |  yes   |  yes   |
| 6| loc    |   yes  |  no    |  yes   |  yes   |
| 7| ref    |   yes  |  no    |  yes   |  yes   |
| 8| obj    |   yes  |  no    |  yes   |  yes   |
| 9| rand   |   yes  |  no    |  yes   |  yes   |
|10| rand2  |   yes  |  no    |  yes   |  yes   |
|11| rand3  |   yes  |  no    |  yes   |  yes   |
|12| rand4  |   yes  |  no    |  yes   |  yes   |

Примечание: от 1 до 12 и от A до E не входят в лист

Как выбрать строку 1 и диапазон строк от 5 до 10 из столбцов A, C, E, чтобы получить следующий результат? :

|  |   A    |    C   |   E    |
| 1| Labels | Item 2 | Item 4 |
| 5| desc   |  no    |  yes   |
| 6| loc    |  no    |  yes   |
| 7| ref    |  no    |  yes   |
| 8| obj    |  no    |  yes   |
| 9| rand   |  no    |  yes   |
|10| rand2  |  no    |  yes   |

Примечание. Я оставил 1, 5, 6,…, 10 и A, C, E, чтобы лучше понять вывод. Я не хочу, чтобы они были в моих данных, я просто хочу, чтобы данные в таблице

Я получил что-то вроде этого, работающее для диапазона строк: SELECT A,C,E LIMIT 6 OFFSET 4, но я пропускаю строку 1 и могу ' не могу найти, как добавить его в тот же запрос.

Ответы [ 3 ]

4 голосов
/ 21 января 2020

попробовать:

=QUERY(A1:E; "select A,C,E limit 6 offset 3"; 1)

0

0 голосов
/ 22 января 2020

с запросом:

=query(filter({row(A1:A),A1:E&""},A1:A<>""), "Select Col2, Col4, Col6 where Col1=1 or Col1>=5 and Col1<=10")

с фильтром:

=filter({A1:A & "",C1:C&"", E1:E& ""},((row(A1:A)=1)+(row(A1:A)>=5)*(row(A1:A)<=10))>0)
0 голосов
/ 21 января 2020

Если вы ищете решение с помощью Google Script:

Если рассматриваемые диапазоны будут выбраны пользователем вручную, вас может заинтересовать использование getActiveRangeList()

Документация: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#getactiverangelist

Если рассматриваемые диапазоны являются фиксированными и могут быть интегрированы в ваш сценарий, вас может заинтересовать использование getRangeList()

Документация: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getrangelista1notations

Обратите внимание, что если вы хотите использовать итерацию RangeList в своем скрипте, вам также потребуется извлечь различные диапазоны из вашего списка, используя getRanges(). Пример:

    var rangeList = ss.getActiveRangeList();
    var myRanges = rangeList.getRanges();

    for (i = 0; i < myRanges.length; i++) {
    ...
    }

Я надеюсь, что это полезно. Приветствия

...