У меня есть ежемесячная электронная таблица, основанная на данных за предыдущий месяц. Я хотел бы импортировать эти значения динамически, а не вырезать и вставить их. Это возможно? Как это сделать?
У меня есть ежемесячная электронная таблица, основанная на данных за предыдущий месяц. Я хотел бы импортировать эти значения динамически, а не вырезать и вставить их. Это возможно? Как это сделать?
Ответы:
IMPORTRANGE()
кажется, что функция, которую вы хотите.
Из списка функций электронных таблиц Google :
Google Spreadsheets позволяет вам ссылаться на другую рабочую книгу в электронной таблице, которую вы в настоящее время редактируете, с помощью функции ImportRange. ImportRange позволяет извлекать одно или несколько значений ячеек из одной электронной таблицы в другую. Чтобы создать собственные формулы ImportRange, введите = importRange (ключ таблицы, диапазон). Для языков, в которых запятая используется для десятичного разделения, используйте точку с запятой вместо запятой для разделения аргументов в формуле.
Spreadsheet-key - это STRING, значение ключа из URL-адреса электронной таблицы.
Range - это STRING, представляющая диапазон ячеек, которые вы хотите импортировать, при желании включая имя листа (по умолчанию первый лист). Вы также можете использовать имя диапазона, если хотите.
Учитывая, что два аргумента являются STRING, вам необходимо заключить их в кавычки или обратиться к ячейкам, в которых есть строковые значения.
Например:
= importrange ("abcd123abcd123", "sheet1! A1: C10") "abcd123abcd123" - это значение в атрибуте "key =" в URL целевой электронной таблицы, а "sheet1! A1: C10" - это диапазон, который требуется импортироваться
= importrange (A1, B1) Ячейка A1 содержит строку ABCD123ABCD123, а ячейка B1 содержит лист1! A1: C10
Примечание. Чтобы использовать ImportRange, необходимо добавить его в качестве средства просмотра или соавтора в электронную таблицу, из которой ImportRange извлекает данные. В противном случае вы получите эту ошибку: «#REF! Error: запрошенный ключ электронной таблицы, заголовок листа или диапазон ячеек не найден».
«ключ» - это, конечно, строка в URL для электронной таблицы, которая соответствует key=
параметру.
Я только что проверил это, создав две таблицы. В ячейку А1 первой я положил строку. В ячейку A1 второй я положил, =importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1")
и она отображала строку из первой электронной таблицы. (Ваш ключ, очевидно, будет другим.)
(Формат функции может зависеть от вашей местности во Франции формула не действует с запятой, так что вам нужно заменить его с запятой:. =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1")
)
ПРИМЕЧАНИЯ:
В настоящее время Google устанавливает жесткое ограничение в 50 "справочных формул кросс-книги" на электронную таблицу. Источник: Google Docs, Sheets и Slides ограничения по размеру . (ч / т Джей Джей Рорер )
«Новая» электронная таблица Google (скоро станет стандартом) устраняет 50-кратный 50-кратный справочник по формулам книги ( служба поддержки Google ) (х / т Джейкоб Ян Туинстра )
В «новых» Google Sheets вы также используете весь URL-адрес в качестве ключа ( поддержка Google ) (h / t Punchlinern )
К вашему сведению, если вы хотите сослаться на другой лист в этой другой электронной таблице, имя листа НЕ должно быть в кавычках:
использование
=importRange("tgR2P4UTz_KT0Lc270Ijb_A","Sheet Name!A1:A10")
вместо
=importRange("tgR2P4UTz_KT0Lc270Ijb_A","'Sheet Name'!A1:A10")
В новом интерфейсе вы просто сможете ввести =
ячейку, а затем просто перейти на другой лист и выбрать нужную ячейку. Если вы хотите сделать это вручную или используете старый интерфейс, вы можете просто указать =Sheet1!A1
, где Sheet1
находится имя листа и A1
какая ячейка на этом листе вам нужна. Это идентично Microsoft Excel.
Я нашел этот синтаксис, используя Вставить -> Определить новый диапазон
Целый столбец: «Электронная таблица с пробелами в имени»! A: A
Целый столбец B: «Электронная таблица с пробелами в имени»! B: B
и т.п.
Тогда вы можете использовать его как:
=COUNTIF('First Page'!B:B, "valueToMatch")
IMPORTRANGE
функция может импортировать данные из другой таблицы. Задание диапазонов подразумевается (возможно) только в электронной таблице. Это то, что я имел в виду снаружи.
IMPORTRANGE
как сказал Джейкоб.
вот как я это сделал (переопределено 'importrange ()'):
function REMOTEDATA (inKey, inRange) { var outData; var ss = SpreadsheetApp.openById (inKey); if (ss) { outData = ss.getRange (inRange) .getValues (); } вернуть outData; }
= SUM (REMOTEDATA («ключ», «SheetName! A1: A10»))
«ключ» - это ключ документа, его можно найти в параметре «ключ = xyz» URL-адреса документа.
документация по « службам электронных таблиц » содержит дополнительную информацию по этой теме.
SpreadsheetApp.openById()
или SpreadsheetApp.openByUrl()
-> developers.google.com/apps-script/guides/sheets/…
Я сделал это очень простым способом, используя Query, например, у меня есть 2 листа ABC и XYZ, и я хочу импортировать диапазон от A1 до C30 из Abc в XYZ, щелкните ячейку, в которой вы хотите, чтобы диапазон появился, и напишите это:
=QUERY(ABC!A1:C30)
Примечание. Если в имени вашего листа есть пробелы, то, конечно, вы пишете так:
=QUERY('ABC 1'!A1:C30)
QUERY
это сделать?
importrange("abcd123abcd123", "sheet1!A1:C10")
например, =query(importrange("abcd123abcd123", "sheet1!A1:C10"))
;-)