Я импортирую файл .csv с помощью функции IMPORTDATA
. Разделителем является ;
и десятичный символ ,
, на котором Google Sheets автоматически применяет текст к столбцу. Я предполагаю, что это ожидаемое поведение от IMPORTDATA
, но в результате мой файл анализируется неправильно.
Я пытался использовать функцию замены для ,
с .
, но я предполагаю, что текст в столбце применяется внутри функции IMPORTDATA
.
=ARRAYFORMULA(SPLIT(SUBSTITUTE(IMPORTDATA("https://drive.google.com/uc?export=download&id=1hosZrfgrKnJJgXkgmPZSKdFoYV_AxKJS"), ",", "."), ";"))
Есть ли способ импортировать CSV с ;
в качестве разделителя и ,
в качестве десятичного символа, используя одну формулу?
Я видел решения, использующие несколько листов, но я хотел бы, чтобы это было просто.
Я думаю, что нашел недокументированную функцию importdata для указания разделителя данных, но я не нашел (пока) один для десятичного разделителя: импорт данных(URL, ";") будет правильно импортировать файл, который использует ";" как разделитель».
=ARRAYFORMULA(SPLIT(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IMPORTDATA(
"https://drive.google.com/uc?export=download&id=1hosZrfgrKnJJgXkgmPZSKdFoYV_AxKJS")), ,
999^99))), " ", "."), ";"))
для компенсации значений, разделенных пробелами:
=ARRAYFORMULA(SUBSTITUTE(SPLIT(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(
IMPORTDATA("https://drive.google.com/uc?export=download&id=1hosZrfgrKnJJgXkgmPZSKdFoYV_AxKJS"),
" ", "♠")), , 999^99))), " ", "."), ";"), "♠", " "))
Спасибо за первое решение и редактирование для учета значений, разделенных пробелами! Не могли бы вы объяснить логику использования транспонирования? Моя единственная проблема сейчас заключается в том, что если я использую вторую формулу, все значения обнаруживаются как текст, что позже станет проблемой с Data Studio. Жаль, что нельзя указать разделитель с помощью IMPORTDATA
.
двойное транспонирование предназначено для запроса, который предназначен для объединения данных, которые неправильно разделены на столбцы (потому что вы можете манипулировать вводом CSV только после его импорта). существуют различные способы повторного преобразования текстовых значений обратно в то, что вам нужно. например QUERY
с командой format
или VALUE
(для преобразования текста в числа) TO_DATE
и т. д.
Спасибо за редактирование. Я отредактировал формулу, включив в нее файл примера.