Новости:

Название темы должно отражать суть задачи.
Темы типа "ПОМОГИТЕ!!!", "Срочно!" и т.п. будут удаляться без объяснения причин

Главное меню

функция Query в гугл таблицах

Автор Евгеша, 25.11.2022, 06:47:01

« назад - далее »

Евгеша

Здравствуйте. Я новичок в этой теме, и нужна ваша помощь.
Необходимо подтянуть данные из трех разных таблиц в один отчет. Отчет движения товара. Но возникла проблема, т.к. отчет подвязан к периоду по датам, то не выдает данные если в одной из таблиц нет движения по заданной дате, выходит ошибка - отсутствует значение одной или нескольких строк.
Знаю есть обход, но как это правильно прописать в query    :-\  

=QUERY({QUERY('списание АСТ'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"' and C='"&C3&"')");QUERY('продажи 1кв23'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"'and C='"&C3&"')");QUERY('приход АСТ'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"'and C='"&C3&"') ")}; "select * where Col1 is not null order by Col1 ")

Дмитрий Щербаков(The_Prist)

#1
А почему вопрос задан не в разделе Google, а в разделе PowerQuery и Power Pivot?
Перенес, но в следующий раз внимательнее создавайте темы.
По теме: без ссылки на файл с данными помогать проблематично.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Евгеша

Цитата: Евгеша от 25.11.2022, 06:47:01
Здравствуйте. Я новичок в этой теме, и нужна ваша помощь.
Необходимо подтянуть данные из трех разных таблиц в один отчет. Отчет движения товара. Но возникла проблема, т.к. отчет подвязан к периоду по датам, то не выдает данные если в одной из таблиц нет движения по заданной дате, выходит ошибка - отсутствует значение одной или нескольких строк.
Знаю есть обход, но как это правильно прописать в query    :-\   

=QUERY({QUERY('списание АСТ'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"' and C='"&C3&"')");QUERY('продажи 1кв23'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"'and C='"&C3&"')");QUERY('приход АСТ'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"'and C='"&C3&"') ")}; "select * where Col1 is not null order by Col1 ")

Дмитрий Щербаков(The_Prist)

Цитата: Евгеша от 25.11.2022, 06:47:01подтянуть данные из трех разных таблиц
Без обид, но в приложенном файле нашел только одну таблицу - где еще две? Да и имя листа никак не соответствует ни одному листу из запроса.
Так же неясно куда подтянуть и на основании чего.
Я не просто так спрашиваю: если Ваш запрос не работает или работает не так, как нужно - лучше описать что хотите получить в итоге и почему именно так. Иначе помочь будет практически нереально и обсуждение либо затянется, либо и вовсе заглохнет.
Поймите правильно - ни у кого не возникнет желания воссоздавать все Ваши таблицы для помощи Вам же в то время, когда у Вас они есть в готовом виде.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Евгеша

#4
Цитата: Евгеша от 25.11.2022, 06:47:01
Здравствуйте. Я новичок в этой теме, и нужна ваша помощь.
Необходимо подтянуть данные из трех разных таблиц в один отчет. Отчет движения товара. Но возникла проблема, т.к. отчет подвязан к периоду по датам, то не выдает данные если в одной из таблиц нет движения по заданной дате, выходит ошибка - отсутствует значение одной или нескольких строк.
Знаю есть обход, но как это правильно прописать в query    :-\  

=QUERY({QUERY('списание АСТ'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"' and C='"&C3&"')");QUERY('продажи 1кв23'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"'and C='"&C3&"')");QUERY('приход АСТ'!$A$3:E; "select * where (A>= date '"&ТЕКСТ(D2;"yyyy-mm-dd")&"' and A<= date '"&ТЕКСТ(E2;"yyyy-mm-dd")&"'and C='"&C3&"') ")}; "select * where Col1 is not null order by Col1 ")

https://docs.google.com/spreadsheets/d/1Hnwh3IDoRypyh0NJbxlNHLki3pzpPB7smUGMKNdGZ3A/edit?usp=drivesdk

Дмитрий Щербаков(The_Prist)

#5
нет доступа к таблице. Настройте доступ к таблице. Если она рабочая - можете сначала сделать копию и уже в копии дать доступ всем, у кого есть ссылка.
Интерес к теме начинает пропадать...

Вижу, что доступ открыли, но...Может какая ошибка? нет листов, указанных в запросе. Да и куда выводить результат запроса тоже не понятно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Евгеша

#6

Дмитрий Щербаков(The_Prist)

А теперь будет неплохо если опишите, что именно надо получить и в каком виде :) Не то, что не получилось и не привязываясь к формуле, а чисто решаемую задачу своими словами.
А заодно - куда прописывать формулу, т.к. все ячейки в приложенном файле защищены и вставить туда формулу не получается.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Евгеша

Цитата: Дмитрий Щербаков(The_Prist) от 28.11.2022, 09:11:12
А теперь будет неплохо если опишите, что именно надо получить и в каком виде :) Не то, что не получилось и не привязываясь к формуле, а чисто решаемую задачу своими словами.
А заодно - куда прописывать формулу, т.к. все ячейки в приложенном файле защищены и вставить туда формулу не получается.

лист Отчет по движ.товаров, ячейку с формулой выделила салатовым цветом.
Доступ открыла на весь лист.
Проблема: если по заданным диапазонам нет данных на дату, то query не возвращает данные.
Исход: если по диапазонам на заданную дату нет движения товара, чтобы формула возвращала на те данные что есть. т.е. игнорила пустые строки на заданную дату.

красным цветом выделила из за каких строк он не выводит данные если поменять даты запроса


Дмитрий Щербаков(The_Prist)

#9
Цитата: Евгеша от 28.11.2022, 11:50:34если по заданным диапазонам нет данных на дату
эх...а что надо получать, если даты есть? Откуда чего брать-то? Евгеша, ну почему надо тянуть все до капли для помощи Вам же? Опишите саму задачу, а потом нюансы. Пока мы про задачу знаем лишь то, что что-то не получается, если на какую-то дату нет данных. А если от этого немного уйти и просто написать - что хочется глобально получить в итоге? Может быть решение предложим такое, которое не потребует обходить "пустые" даты.
Я не просто так пишу: я перешел в Ваш файл - у меня запрос никаких ошибок не выдает, возвращает дату. Но что именно Вы хотите получить таким запросом - я не очень понимаю, если честно. Вы пытаетесь получить данные с нескольких листов, но вот какие именно - только Вам известно. То ли первую дату, то ли все, то ли вообще не даты. Порядок столбцов не во всех листах одинаков - это тоже минус(на листе "продажи 1кв23" столбцы отличаются от порядка на других двух).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Дмитрий Щербаков(The_Prist)

#10
В ячейке F16 прописал запрос как понял.
У Вас не совсем верный синтаксис(точнее реализация запроса) - поэтому и просил пояснения, что хотите получить в итоге. Если всю таблицу на основании заданных условий - то именно это и сделал в F16, Вам надо просто перенести формулу в нужную ячейку(не стал переписывать прямо в той же ячейке на всякий случай - вдруг не так понял задачу).
Сама формула:
=QUERY({'списание АСТ'!$A$3:E;'продажи 1кв23'!$A$3:E;'приход АСТ'!$A$3:E}; "select * where (Col1>= date '"&TEXT(D2;"yyyy-mm-dd")&"' and Col1<= date '"&TEXT(E2;"yyyy-mm-dd")&"'and Col3='"&C3&"') order by Col1")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Евгеша

Цитата: Дмитрий Щербаков(The_Prist) от 28.11.2022, 13:44:46
В ячейке F16 прописал запрос как понял.
У Вас не совсем верный синтаксис(точнее реализация запроса) - поэтому и просил пояснения, что хотите получить в итоге. Если всю таблицу на основании заданных условий - то именно это и сделал в F16, Вам надо просто перенести формулу в нужную ячейку(не стал переписывать прямо в той же ячейке на всякий случай - вдруг не так понял задачу).
Сама формула:
=QUERY({'списание АСТ'!$A$3:E;'продажи 1кв23'!$A$3:E;'приход АСТ'!$A$3:E}; "select * where (Col1>= date '"&TEXT(D2;"yyyy-mm-dd")&"' and Col1<= date '"&TEXT(E2;"yyyy-mm-dd")&"'and Col3='"&C3&"') order by Col1")

Спасибо!!!!! Все работает  ::) ;-D :-D :-D :-D

Яндекс.Метрика Рейтинг@Mail.ru