На самом деле, вопрос не столь уж и тривиален, как может показаться на первый взгляд. Формат , как следует из его названия, подразумевает использование в качестве разделителя символ запятой (,) . Однако, многие программы и сервисы допускают использованием и других символов. К таковым можно отнести и MS Excel, особенно если речь идёт о русифицированной его версии. В данной статье я хочу привести решение проблемы с открытием CSV-файла экспорта из Google инструмента для веб-мастеров в MS Excel. Впрочем, тема актуально и для других вариантов.
Содержание:
- Проблема экспорта поисковых запросов (ПЗ) из Google вебмастер
- CSV с разделителем запятая в UTF-8
- Проблема с кодировкой
- Разделитель запятая в CSV
- То, что помогло
Проблема экспорта ПЗ из Google вебмастер
Многие из нас используют Google инструмент для веб-мастеров только для добавления сайта. Это неправильно, здесь есть масса полезной информации, например список поисковых запросов, по которым пользователи находят и заходят на сайт. Смотрите отчет: Поисковый трафик > Поисковые запросы — предварительно выбрав нужный сайт в списке.
Google Таблицы. Урок 105. Делаем форму для сбора отчетов по продажам. Меняем точку на запятую
Здесь же есть и экспорта данных в CSV-формате, с возможностью его открытия в Google Таблицы (онлайн аналог Excel) . Ищите кнопку «Загрузить эту таблицу». К слову, количество отображаемых запросов на странице не влияет на полноту экспортируемых данных.
Проблема в том, что в CSV-файле используется разделитель запятой и кодировка UTF-8. Так что даже в Google Таблицы, вместо кириллицы, вы получите только набор вопросов.
Другими словами, нам нужно изменить кодировку на ANSI. А для открытия файла CSV в Excel заменить и разделитель запятой (,) на символ точки с запятой (;) .
CSV с разделителем запятая в UTF-8
Проблема с кодировкой
Проще всего решить проблему с кодировкой. Для этого вы можете использовать любой текстовый редактор с этой функцией, например Notepad++. Его вы можете скачать бесплатно на официальном сайте: unotepad-plus-plus.org . Далее запускаем редактор и открываем в нём наш CSV-файл, а потом кликаем пункт меню «Кодировки» и меняем на нужную, т.е. пункт «Преобразовать в ANSI».
У меня на картинке показан обратный процесс: преобразования из ANSI в UTF-8 — но, думаю, вы это и сами заметилии, а принцип тот же.
Разделитель запятая в CSV
Теперь, что касается разделителя запятой. По сути, для Google Таблиц что-то менять не надо. Да и в англоязычной версии MS Excel это может прокатить, проверьте. Тем не менее, если нужна замена, то здесь следует учесть, что просто заменить запятую (,) на символ точки с запятой (;) не получится, т.к. в файле могут быть значения, содержащие этот символ. Они обычно помещены в кавычки. Например:
значение,1,»значение, с запятой«,
По идее здесь должна помочь настройка самой операционной системы Windows: Пуск > Панель управления > Язык и региональные стандарты. На вкладке «Форматы» кликаем кнопку «Изменить этот формат. » В открывшемся окне, на вкладке «Числа» замените «Разделитель элементов списка» на нужный, т.е. символ точки с запятой (;) меняем на запятую (,) .
Правда, у меня это не сработало. Да и менять настройки операционной системы, как по мне, дело не благодатное. Тем не менее, я решил указать этот вариант решения проблемы, т.к. на большинстве специализированных форумов ссылаются именно на него.
То, что помогло
Увы, но какой-то дополнительной обработки файлов с расширением .csv в MS Excel я не нашел. Тем не менее, есть возможность обработки, но только в том случае, если сменить расширение файла, например, на .txt . Так что меняем расширение файла и открываем его в Excel.
Появится окно «Мастер текстов (импорт)». Здесь вы можете выбрать формат исходных данных, начальную строку импорта и кодировку файла (нам нужна 1251 : Cyrillic ) . К слову, почему нужно было менять кодировку, когда её можно выбрать в мастере? Потому, что кодировки UTF-8, по крайней мере у меня, здесь нету. Кликаем кнопку «Далее».
На следующем шаге мы можем выбрать символ-разделитель, причем несколько. Ставим галочку «запятая» и убираем галочку «знак табуляции». Здесь же можно выбрать и символ ограничителя строк.
Это тот, что используется для значений, в которых присутствуют спецсимволы (двойные кавычки, запятая, точка с запятой, новая строка и т.д.) . Вариант с двойной кавычкой, в моём случае, это то, что надо. Обратите внимание на поле «Образец разбора данных», данные стали таблицей. Кликаем кнопку «Далее».
На последнем шаге можно указать формат данных столбцов, правда выбор здесь не велик: общий (по умолчанию) , текстовый, дата и пропустить столбец. Последний вариант представляется мне наиболее интересным, т.к. позволяет сразу исключить ненужные столбцы. Просто выберите соответствующий столбец и кликните для него вариант «пропустить столбец». Кликаем кнопку «Готово».
Excel сформирует нужную нам таблицу, где мы можем задать нужную ширину столбцов и формат ячеек, но это уже совсем другая история. Отмечу лишь, что есть проблема с распознанием тех же процентов.
Онлайн сервис для нормализации CSV-файлов
Впрочем, все выше изложенные проблемы решает простой онлайн сервис Normalization CSV. Он позволяет менять кодировку и символ разделителя. Правда существует ограничение в 64 000 байтов (сколько это в Кб?) для загружаемого файла, но CSV-файлы обычно весят не очень много, должно хватить. Результат обработки выводится как обычный текстовый файл, его можно сохранить с расширением .csv .
К слову, скрипт преобразовавает значение процентов, например: 95 % — в нужное значение для столбца «проценты» в Excel, т.е. делится на 100 и получаем число с плавающей запяток, например: 0,95 . Если нужны ещё какие-то преобразования: пишите, попробуем доработать.
Ну, а если предложенный онлайн сервис вас не устраивает, вы всегда можете воспользоваться выше приведённой инструкцией.
Подведём итоги
Некоторые онлайн сервисы предоставляют возможность экспорта данных в просто и удобном CSV-формате. Как следует из названия, подразумевает использование в качестве разделителя символ запятой (,) . Однако, многие приложения трактуют этот формат несколько своевольно, что приводит к закономерным проблемам. К тому же сейчас всё более популярна кодировка UTF-8, в то время как Excel или Google Таблицы используют ANSI.
Решить проблему с кодировкой поможет, к примеру, Notepad++, а для того, чтобы разобраться с разделителем, достаточно изменить расширение файла на .txt и воспользоваться мастером текстов в Excel. Впрочем, все эти задачи способен решить бесплатный онлайн сервис Normalization CSV, правда стоит учесть его ограничение на объём загружаемого файла. На этом у меня всё. Спасибо за внимание. Удачи!
Короткая ссылка: http://goo.gl/rAe1Xb
Источник: kakvofise.ru
Скрипт для автозамены символов в spreadsheets
Столкнулся с такой проблемой: Google формы при сохранении данных в таблицу изменяют в числах разделитель десятичной части с «запятой» на «точку». В итоге вместо цифр в таблице имеем текст. Сейчас меняю в столбцах «точку» на «запятую» вручную через «Меню-Правка-Найти и заменить». Но хотелось бы это автоматизировать. По разным примерам из Интернета написал следующее:
function onOpen() < var sheet = SpreadsheetApp.getActiveSpreadsheet(); var entries = []; sheet.addMenu(«Скрипты», entries); >; function ReplaceDotToComma() < var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(«Страница 2») var r = sheet.getRange(«A:B»); var rws = r.getNumRows(); var cls = r.getNumColumns(); var i, j, a, fnd, rpl; fnd = «.»; rpl = «,»; for (i=1;i<=rws;i++) < for (j=1;j<=cls;j++) < a=r.getCell(i, j); a=a.toString().replace(fnd, rpl); r.getCell(i, j).setValue(a); >> >
Но что-то не работает. Прошу помощи, как правильно написать команду замены? Готов на любую помощь. Заранее благодарен.
Ответы (5 шт):
Действительно ли вам нужен скрипт? Попробуйте настроить Форму.
Действительно, формат числа поддерживается «нормально» только для систем, где разделителем является точка. Но вы можете создать текстовое поле с проверкой на значение, используя регулярное выражение с паттерном:
- Пример формы
- Проверка ответов — Справка Google
В Google Docs Spreadsheets есть SUBSTITUTE
Подозреваю что a=r.getCell(i, j).GetValue(); должно быть
Я переделал код и получилось то, что нужно. Возможно, что кто-нибудь сможет его еще улучшить, чтобы это было более красиво
function replaceOKVED() < var ss = SpreadsheetApp.getActiveSpreadsheet() var sheet = ss.getSheetByName(«transliteraciya») var sheetOKVED = ss.getSheetByName(«ALFAVIT») var arrOKVED = sheetOKVED.getRange(«A2:B»+sheetOKVED.getLastRow()).getDisplayValues() var arrKeys = sheet.getRange(«A2:B» + sheet.getLastRow()).getDisplayValues() for(var i = 0; i < arrKeys.length; i++)< if(arrKeys[i][0].search(«заменить 1») != -1)< var okvedNumber = arrKeys[i][1] for(var j = 0; j> > else if(arrKeys[i][0].search(«заменить») != -1) < var arrOkvedNumbers = arrKeys[i][1].split(«») var arrOkvedNames = [] for(var l = 0; l < arrOkvedNumbers.length;l++)< for(var k = 0;k> > var fullName = arrOkvedNames.join(«») sheet.getRange(i+2,2).setValue(fullName) > > ss.toast(«Все готово», «Внимание», 5) >
function onOpen(e) < //updateXmlList() addMenu_() >function addMenu_()
1) создайте таблицу с названием «ALFAVIT» — в первом столбце запишите то, что меняем — во втором — на что меняем
2) на любой странице в столбце «А» пишем слово «заменить» в столбце «В» текст которых хотим заменить
Я новичок, и у меня не хватает опыта — не судите строго. Если кто улучшит решение — буду рад.
=(SUBSTITUTE(substitute(H5,»,»,»»),».»,»,»))
Источник: husl.ru
Google Таблицы. Урок 105. Делаем форму для сбора отчетов по продажам. Меняем точку на запятую
Google Таблицы. Урок 105. Делаем форму для сбора отчетов по продажам. Меняем точку на запятую Добрый день! Достаточно часто пользователи Google Forms сталкиваются с проблемой, когда числовые данные из формы не корректно выгружаются в Гугл таблицы. В частности вместо запятой появляется точка, которая превращает число в строку с которой уже не возможно производить вычисления.
В этом видео уроке по Гугл Формам я расскажу как заменить точку на запятую и как не позволить пользователю поставить точку вместо запятой в числах с дробной частью Спасибо за просмотр! Подписывайтесь а мой канал, ставьте лайки и оставляйте комментарии. Посетите наш сайт: e-sdelano.ru Наш канал в Яндекс Дзен: zen.yandex.ru/sdelano Этот канал есть и на RUTUBE: rutube.ru/channel/23934103/ Подписывайтесь на Телеграм (esdelano): t.me/esdelano Буду рад любым пожертвованиям на поддержку канала yoomoney.ru/to/41001252667153 Посетите сайт e-sdelano.ru e-sdelano.ru/2021/01/18/google-forms-%d1%83%d1%80%d0%be%d0%ba-9-%d0%b4%d0%b5%d0%bb%d0%b0%d0%b5%d0%bc-%d1%84%d0%be%d1%80%d0%bc%d1%83-%d0%b4%d0%bb%d1%8f-%d1%81%d0%b1%d0%be%d1%80%d0%b0-%d0%be%d1%82%d1%87%d0%b5%d1%82%d0%be/ Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам, в том числе сможете просматривать ролики, которые ещё не доступны остальным подписчикам. Подробнее: youtube.com/channel/UCkFVO_PCuKB_86JY7EBy0qQ/join
Источник: www.enjoytoys.ru