Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Импорт формулы в гугл докс - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Импорт формулы в гугл докс
PSYCHO1985 Дата: Воскресенье, 24.03.2024, 15:04 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2021
Здравствуйте! Помогите, пожалуйста, если возможно. Есть формула в эксель, отфильтровывающая данные в новую книгу: =ФИЛЬТР(ФИЛЬТР('[Круиз.xlsx]2024'!A37:H76;('[Круиз.xlsx]2024'!G37:G76<>0)*('[Круиз.xlsx]2024'!A37:A76<>0));'[Круиз.xlsx]2024'!A1:H1)
Загрузил файлы в гугл докс и пытаюсь заставить работать формулу через IMPORTRANGE:
=FILTER(FILTER(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk/edit?usp=sharing";"2024!A37:H76");(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk/edit?usp=sharing";"2024!G37:G76"<>0))*(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk/edit?usp=sharing";"2024!A37:A76"<>0)));IMPORTRANGE("https://docs.google.com/spreadsheets/d/1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk/edit?usp=sharing";"2024!A1:H1"))

Но она выдаёт ошибку: В функции FILTER указан неверный диапазон. Требуемое число строк – 40, столбцов – 1. Фактическое число строк – 1, столбцов – 1.
Подскажите, пожалуйста, что делаю не так? С гугл докс почти не знаком..


Сообщение отредактировал PSYCHO1985 - Воскресенье, 24.03.2024, 15:07
 
Ответить
СообщениеЗдравствуйте! Помогите, пожалуйста, если возможно. Есть формула в эксель, отфильтровывающая данные в новую книгу: =ФИЛЬТР(ФИЛЬТР('[Круиз.xlsx]2024'!A37:H76;('[Круиз.xlsx]2024'!G37:G76<>0)*('[Круиз.xlsx]2024'!A37:A76<>0));'[Круиз.xlsx]2024'!A1:H1)
Загрузил файлы в гугл докс и пытаюсь заставить работать формулу через IMPORTRANGE:
=FILTER(FILTER(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk/edit?usp=sharing";"2024!A37:H76");(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk/edit?usp=sharing";"2024!G37:G76"<>0))*(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk/edit?usp=sharing";"2024!A37:A76"<>0)));IMPORTRANGE("https://docs.google.com/spreadsheets/d/1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk/edit?usp=sharing";"2024!A1:H1"))

Но она выдаёт ошибку: В функции FILTER указан неверный диапазон. Требуемое число строк – 40, столбцов – 1. Фактическое число строк – 1, столбцов – 1.
Подскажите, пожалуйста, что делаю не так? С гугл докс почти не знаком..

Автор - PSYCHO1985
Дата добавления - 24.03.2024 в 15:04
Gustav Дата: Воскресенье, 24.03.2024, 15:56 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Попробуйте последний IMPORTRANGE, который на однострочный диапазон 2024!A1:H1 ссылается, обернуть в функцию ArrayFormula(...) - может поможет, т.е.
[vba]
Код
... ArrayFormula( IMPORTRANGE(...) ))
[/vba]
А вообще лучше сначала "пригнать" в принимающий файл на отдельный лист (ну, не жадничайте!) нужный диапазон 2024!A37:H76, в который входят два других 2024!A37:A76 и 2024!G37:G76 (видимо, по которым условия фильтрации задаются) - для этого потребуется только один IMPORTRANGE. А дальше в принимающем файле уже с помощью FILTER получить нужный результат.

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


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПопробуйте последний IMPORTRANGE, который на однострочный диапазон 2024!A1:H1 ссылается, обернуть в функцию ArrayFormula(...) - может поможет, т.е.
[vba]
Код
... ArrayFormula( IMPORTRANGE(...) ))
[/vba]
А вообще лучше сначала "пригнать" в принимающий файл на отдельный лист (ну, не жадничайте!) нужный диапазон 2024!A37:H76, в который входят два других 2024!A37:A76 и 2024!G37:G76 (видимо, по которым условия фильтрации задаются) - для этого потребуется только один IMPORTRANGE. А дальше в принимающем файле уже с помощью FILTER получить нужный результат.

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

Автор - Gustav
Дата добавления - 24.03.2024 в 15:56
PSYCHO1985 Дата: Воскресенье, 24.03.2024, 16:35 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2021
А вообще лучше сначала "пригнать" в принимающий файл на отдельный лист (ну, не жадничайте!) нужный диапазон 2024!A37:H76, в который входят два других 2024!A37:A76 и 2024!G37:G76 (видимо, по которым условия фильтрации задаются) - для этого потребуется только один IMPORTRANGE. А дальше в принимающем файле уже с помощью FILTER получить нужный результат.


Подскажите, пожалуйста, как это сделать?
 
Ответить
Сообщение
А вообще лучше сначала "пригнать" в принимающий файл на отдельный лист (ну, не жадничайте!) нужный диапазон 2024!A37:H76, в который входят два других 2024!A37:A76 и 2024!G37:G76 (видимо, по которым условия фильтрации задаются) - для этого потребуется только один IMPORTRANGE. А дальше в принимающем файле уже с помощью FILTER получить нужный результат.


Подскажите, пожалуйста, как это сделать?

Автор - PSYCHO1985
Дата добавления - 24.03.2024 в 16:35
Gustav Дата: Воскресенье, 24.03.2024, 16:51 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Добавляете в принимающий файл новый рабочий лист и в его ячейку A1 пишете формулу:
[vba]
Код
=IMPORTRANGE("1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk";"2024!A37:H76")
[/vba]
Далее на этом же новом листе (для примера), где-нибудь правее, например, в ячейку K1 пишете формулу вашего внутреннего фильтра:
[vba]
Код
=FILTER(A1:H;G1:G<>0; A1:A<>0)
[/vba]
А внешний фильтр я пока не очень понял, что он должен сделать? Отобрать первую строку из отфильтрованных внутренним фильтром?


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеДобавляете в принимающий файл новый рабочий лист и в его ячейку A1 пишете формулу:
[vba]
Код
=IMPORTRANGE("1bgCLqQgZeOOXox7jhl1UF1H2v9ogI0srypNB443FChk";"2024!A37:H76")
[/vba]
Далее на этом же новом листе (для примера), где-нибудь правее, например, в ячейку K1 пишете формулу вашего внутреннего фильтра:
[vba]
Код
=FILTER(A1:H;G1:G<>0; A1:A<>0)
[/vba]
А внешний фильтр я пока не очень понял, что он должен сделать? Отобрать первую строку из отфильтрованных внутренним фильтром?

Автор - Gustav
Дата добавления - 24.03.2024 в 16:51
PSYCHO1985 Дата: Воскресенье, 24.03.2024, 17:31 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2021
А внешний фильтр я пока не очень понял, что он должен сделать? Отобрать первую строку из отфильтрованных внутренним фильтром?


Вот для примера исходные файлы с рабочей формулой в эксель - то, что пытаюсь осуществить в гугл докс )
К сообщению приложен файл: raskhody.xls (36.5 Kb) · kruiz.xlsx (44.3 Kb)
 
Ответить
Сообщение
А внешний фильтр я пока не очень понял, что он должен сделать? Отобрать первую строку из отфильтрованных внутренним фильтром?


Вот для примера исходные файлы с рабочей формулой в эксель - то, что пытаюсь осуществить в гугл докс )

Автор - PSYCHO1985
Дата добавления - 24.03.2024 в 17:31
Gustav Дата: Воскресенье, 24.03.2024, 22:34 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Ну, всё теперь понятно. В диапазоне "2024!A1:H1" находятся логические значения включения колонок исходной таблицы в результат (внешний ФИЛЬТР): ИСТИНА (или TRUE) - колонка включается в результат, ЛОЖЬ (FALSE) или пустая ячейка - не включается.

В итоге следующая рабочая последовательность операций выстроилась:
1. В принимающий файл добавляете новый рабочий лист, для удобства переименовываете его в "2024"

2. В ячейку A1 этого нового листа помещаете формулу:
[vba]
Код
=IMPORTRANGE("...id файла-отправителя...";"2024!A:H")
[/vba]и обязательно даёте ей разрешение с помощью возникшей рядом с ячейкой кнопкой.

3. В принимающем файле добавляете еще один рабочий лист (называете, как хотите, например, "Круиз") и в его ячейку A1 помещаете формулу:
[vba]
Код
=FILTER( FILTER('2024'!A37:H76; '2024'!G37:G76<>0; '2024'!A37:A76<>0); '2024'!A1:H1)
[/vba]
Обратите внимание, что составное условие внутреннего фильтра, выглядевшее в Excel как сложное выражение (произведение):
[vba]
Код
('2024'!G37:G76<>0)*('2024'!A37:A76<>0)
[/vba]в таблицах Гугл может быть записано как последовательность двух (и более, если надо) простых условий (мысленно объединямых по AND):[vba]
Код
'2024'!G37:G76<>0; '2024'!A37:A76<>0
[/vba]Разумеется, сложное выражение из Excel в Гугл тоже работает.

В результате работы формулы FILTER ( FILTER возвращаются только три колонки (1-я, 7-я и 8-я) из исходных восьми, т.е. только те, для которых в диапазоне 2024!A1:H1 установлено значение TRUE(истина):
[vba]
Код
Дата:    Расход:    Коментарии:
02 февраля 2024 г.    5 850 ₽    Г601Кр %Д
02 февраля 2024 г.    8 600 ₽    Г484Кр %Д
02 февраля 2024 г.    800 ₽    телефон
...........................................................
[/vba]
P.S. Значения диапазона '2024'!A1:H1 можно прописать в формуле в виде явного горизонтального массива значений TRUE и FALSE, которые для удобства можно заменить на единицы и нули соответственно (1 - столбец включается в результат фильтра, 0 - не включается):
[vba]
Код
{1\0\0\0\0\0\1\1}
[/vba]
Число элементов массива при этом должно быть строго равно числу столбцов фильтруемого диапазона. В нашем случае фильтруемый диапазон A37:H76 содержит 8 колонок, по каждой из которых в массиве нужно "высказаться" нулем или единицей:
[vba]
Код
=FILTER( FILTER('2024'!A37:H76; '2024'!G37:G76<>0; '2024'!A37:A76<>0); {1\0\0\0\0\0\1\1})
[/vba]
В итоге в массив результата этой формулы войдут колонки A, G и H (т.е. 1-я, 7-я и 8-я - в соответствии с расстановкой единичек в массиве).


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Понедельник, 25.03.2024, 11:56
 
Ответить
СообщениеНу, всё теперь понятно. В диапазоне "2024!A1:H1" находятся логические значения включения колонок исходной таблицы в результат (внешний ФИЛЬТР): ИСТИНА (или TRUE) - колонка включается в результат, ЛОЖЬ (FALSE) или пустая ячейка - не включается.

В итоге следующая рабочая последовательность операций выстроилась:
1. В принимающий файл добавляете новый рабочий лист, для удобства переименовываете его в "2024"

2. В ячейку A1 этого нового листа помещаете формулу:
[vba]
Код
=IMPORTRANGE("...id файла-отправителя...";"2024!A:H")
[/vba]и обязательно даёте ей разрешение с помощью возникшей рядом с ячейкой кнопкой.

3. В принимающем файле добавляете еще один рабочий лист (называете, как хотите, например, "Круиз") и в его ячейку A1 помещаете формулу:
[vba]
Код
=FILTER( FILTER('2024'!A37:H76; '2024'!G37:G76<>0; '2024'!A37:A76<>0); '2024'!A1:H1)
[/vba]
Обратите внимание, что составное условие внутреннего фильтра, выглядевшее в Excel как сложное выражение (произведение):
[vba]
Код
('2024'!G37:G76<>0)*('2024'!A37:A76<>0)
[/vba]в таблицах Гугл может быть записано как последовательность двух (и более, если надо) простых условий (мысленно объединямых по AND):[vba]
Код
'2024'!G37:G76<>0; '2024'!A37:A76<>0
[/vba]Разумеется, сложное выражение из Excel в Гугл тоже работает.

В результате работы формулы FILTER ( FILTER возвращаются только три колонки (1-я, 7-я и 8-я) из исходных восьми, т.е. только те, для которых в диапазоне 2024!A1:H1 установлено значение TRUE(истина):
[vba]
Код
Дата:    Расход:    Коментарии:
02 февраля 2024 г.    5 850 ₽    Г601Кр %Д
02 февраля 2024 г.    8 600 ₽    Г484Кр %Д
02 февраля 2024 г.    800 ₽    телефон
...........................................................
[/vba]
P.S. Значения диапазона '2024'!A1:H1 можно прописать в формуле в виде явного горизонтального массива значений TRUE и FALSE, которые для удобства можно заменить на единицы и нули соответственно (1 - столбец включается в результат фильтра, 0 - не включается):
[vba]
Код
{1\0\0\0\0\0\1\1}
[/vba]
Число элементов массива при этом должно быть строго равно числу столбцов фильтруемого диапазона. В нашем случае фильтруемый диапазон A37:H76 содержит 8 колонок, по каждой из которых в массиве нужно "высказаться" нулем или единицей:
[vba]
Код
=FILTER( FILTER('2024'!A37:H76; '2024'!G37:G76<>0; '2024'!A37:A76<>0); {1\0\0\0\0\0\1\1})
[/vba]
В итоге в массив результата этой формулы войдут колонки A, G и H (т.е. 1-я, 7-я и 8-я - в соответствии с расстановкой единичек в массиве).

Автор - Gustav
Дата добавления - 24.03.2024 в 22:34
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!