Вставить только значения Гугл таблицы не работает

Именно сегодня перестала работать функция — вставить результат вычисления формулы как значения. (В 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 должна давать те же результаты.

enter image description here

Однако столбец 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 таблице

[firefox]104.0.1 и [chromium]104 — проверил, работает одинаково в обоих браузерах.
Однако, ctrl+shift+V вставляет только те значения, которые были скопированы именно в текущей открытой таблице.
Иными словами: если вы скопировали что-то вне гугл таблиц, то эти данные вставятся только по ctrl+V; через ctrl+shift+V не сработает

Все функции Google data studio

Источник: forum.mozilla-russia.org

Рейтинг
Загрузка ...