Именно сегодня перестала работать функция — вставить результат вычисления формулы как значения. (В Google Apps Scripts, Google Spreadsheets). На сейчас эта функция работает как clearContents() — просто затирает все значения. Пример:
function myFunction() < var ss = SpreadsheetApp.getActiveSpreadsheet() var sheet = ss.getActiveSheet() var range = sheet.getRange(«A1:C3») range.setFormula(«=1+2») range.copyTo(range, ) //Или так: //range.copyValuesToRange(sheet, range.getColumn(), range.getLastColumn(), range.getRow(), range.getRowIndex()) //range.copyTo(range, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false) >
Можно использовать другие методы, поколдовав с форматами, но почему же перестало работать??
range.setValue(range.getValues()) range.setValue(range.getDisplayValues())
- google-spreadsheet
- google-apps-script
Отслеживать
Prianichkin Sergey
задан 28 фев 2018 в 7:07
Prianichkin Sergey Prianichkin Sergey
968 2 2 золотых знака 9 9 серебряных знаков 20 20 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вдруг кому интересно будет не смотря на минусовой вопрос:
Функция ImportRange в Google Таблицах
Необходимо добавить перед range.copyTo(range, ) SpreadsheetApp.flush()
Согласно документации, этот метод применяет все ожидающие изменения в таблице
Applies all pending Spreadsheet changes.
То есть, как я понимаю, ранее, при вызове copyTo, google перед тем, как брать данные из ячеек, сам применял все изменения (высчитывал результаты формул), а после этого уже делал копирование. Сейчас же нужно этот момент задавать вручную.
UPD1: Согласно комментарию oshliaer, можно и Sheets API использовать.
Насколько я понимаю, код будет где-то такой:
// ss = SpreadsheetApp.getActiveSpreadsheet() // sheet = ss.getSheetByName(«NAME») //Для примера: range = sheet.getRange(«A1:C») function killAllFormulas2(ss, sheet, range) < // Обязателен вызов flush(), иначе если вы только вставили сложные формулы и сразу захотели вставить результаты вычисления как значения — они могут не успеть обновить данные в ячейках SpreadsheetApp.flush() // Получаем ID вашего Spreadsheet var ssID = ss.getId() // Если выбран такой диапазон как в примере — его обязательно нужно перевести в вид A1:C1000 (условно) var rangeA1 = sheet.getRange(range.getRow(), range.getColumn(), range.getLastRow()-range.getRow()+1, range.getLastColumn()-range.getColumn()+1).getA1Notation() // Получаем значения var values = Sheets.Spreadsheets.Values.get(ssID, sheet.getName() + «!» + rangeA1) // Вставляем значения Sheets.Spreadsheets.Values.update(values, ssID, sheet.getName() + «!» + rangeA1, ) >
В примерах, которые встречаются вот здесь указано, что для большинства случаев использования лучше использовать стандартные методы встроенного SpreadsheetApp (например цитата для записи данных:
This code uses the Sheets Advanced Service, but for most use cases the built-in method SpreadsheetApp.getActiveSpreadsheet().getRange(range).getValues(values) is more appropriate.
РЕШЕНО! В Google Excel таблицах не работает функция IMPORTJSON
По скорости работы я проверял на некоторых диапазонах со сложными формулами — разницы вообще не увидел. Скорее всего это все один и тот же алгоритм.
Надеюсь, этот ответ поможет кому-то не тратить драгоценное время на поиски истины.
Источник: ru.stackoverflow.com
Запрос Google Sheets не отображает все значения
У меня есть Google Sheet со следующей формулой запроса:
=QUERY(‘Contact Changes’!B1:T,»SELECT C,D,E,F,G,H,I,J,K,L,M,N,O,R,S WHERE T=’RMT'»)
Исходный лист отображает следующие результаты при фильтрации столбца T по RMT . Итак, формула Query должна давать те же результаты.
Однако столбец L не отображает значения полей, когда они являются текстовыми значениями:
Если вы заглянете в J126 (столбец города), вы увидите значение asdf , значение которого правильно отображается в результатах H2 . Но это же значение в L126 не отображается в результатах L2 . Единственный способ получить значение для отображения в этом столбце — это ввести цифры.
- проверил формат данных столбца
- попытался удалить и повторно добавить столбец в Query
- изменение порядка столбцов
- ввод одинаковых значений в другой столбец (они отображаются в результатах)
- вручную введите значения в том же столбце (они не отображаются в результатах)
Я что-то упускаю из виду? Что еще я могу попробовать?
davids 1 Май 2017 в 18:27
4 ответа
Лучший ответ
Google sheet query принимает только один тип данных на столбец, он обнаруживает автоматически:
- если Col содержит больше текстовых значений: возвращает текст
- если Col содержит больше чисел: возвращает числа.
Я решил ту же проблему двумя способами:
- используйте filter или объедините filter с query
- сделать дополнительный столбец и преобразовать все значения в текст, добавив любой символ, а затем избавиться от него.
В случае смешанных типов данных в одном столбце тип данных большинства определяет тип данных столбца для целей запроса. Типы данных меньшинства считаются нулевыми значениями.
Max Makhrov 2 Май 2017 в 05:40
В дополнение к вкладу Макса вы также можете предварительно обработать данные, чтобы они все были преобразованы в текст, а затем обернуть запрос вокруг этого вывода. Что-то вроде
=QUERY(ArrayFormula(TO_TEXT(‘Contact Changes’!B1:T)),»SELECT Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12, Col13, Col14, Col17, Col18 WHERE Col19=’RMT'»)
JPV 2 Май 2017 в 06:38
В прошлом у меня была такая же проблема, и сегодня я попытался отформатировать весь столбец как «обычный текст», и он работал отлично.
Нет проблем больше, и каждое значение отображается.
Nicholas Delkeskamp 4 Сен 2017 в 16:44
Пример объединения с Filter с Query для тех, кто может найти это полезным:
=QUERY(FILTER(‘Original Statement’!A:Z, ‘Original Statement’!A:A = «Trades»), «select *»)
Источник: question-it.com
Вставить только значения гугл таблицы не работает
Полезная информация
Общайтесь со знакомыми и друзьями в нашей группе в Контакте.
Страницы: 1
- Форумы
- » Firefox
- » Не работает сочитание клавишь в Google таблице
№1 31-08-2022 08:31:04
Не работает сочитание клавишь в Google таблице
Не работает CTRL+SHIFT+V в Google таблице , в других окнах эту функция работает, в браузере Chrome без проблем работает эта функция. Где искать решение проблемы данного характера?!
№2 02-09-2022 20:07:38
Re: Не работает сочитание клавишь в Google таблице
104.0.1 и
104 — проверил, работает одинаково в обоих браузерах.
Однако, ctrl+shift+V вставляет только те значения, которые были скопированы именно в текущей открытой таблице.
Иными словами: если вы скопировали что-то вне гугл таблиц, то эти данные вставятся только по ctrl+V; через ctrl+shift+V не сработает
Источник: forum.mozilla-russia.org