Как мы добавляли лист "про нас" в сто Таблиц
Привет, сегодня рассмотрим конкретную рабочую задачу – мы нарисовали лист "⚡️ ПРО НАС" с нашими ссылками и решили добавить этот лист во все Таблицы с примерами, которые были опубликованы на канале за почти пять лет.
В статье два готовых скрипта и рассказ – teletype.in/@google_sheets/searchNadd
=
p.s. заказать работу у нас: teletype.in/@google_sheets/sheet_happens
Привет, сегодня рассмотрим конкретную рабочую задачу – мы нарисовали лист "⚡️ ПРО НАС" с нашими ссылками и решили добавить этот лист во все Таблицы с примерами, которые были опубликованы на канале за почти пять лет.
В статье два готовых скрипта и рассказ – teletype.in/@google_sheets/searchNadd
=
p.s. заказать работу у нас: teletype.in/@google_sheets/sheet_happens
ЭВОТОР + GOOGLE ТАБЛИЦЫ
Коллеги, мы выпустили дополнение для синхронизации онлайн касс "ЭВОТОР" и Google Таблиц (в магазине google, в магазине эвотор).
Майские обновления:
• Анализ позиции. Новый лист для анализа позиции: выбираете позицию, видите выручку, количество чеков и что еще есть в этих чеках.
• Логируем открытие / закрытие смены кассы. На лист "смены" теперь автоматически загружаются документы по открытию и закрытию смены.
• Простой abc-отчёт по выручке. В нём вы сможете увидеть товары, которые дают большую часть вашей выручки
Предложение мая:
Продаём несколько доступов за 10 000 (четыре месяца, независимо от количества терминалов), бонус – создаём с покупателем личный чат с нами и покупатель сможет попросить добавить новый отчёт в свою Таблицу на основе загружаемых данных. Пишите @namokonov
Коллеги, мы выпустили дополнение для синхронизации онлайн касс "ЭВОТОР" и Google Таблиц (в магазине google, в магазине эвотор).
Майские обновления:
• Анализ позиции. Новый лист для анализа позиции: выбираете позицию, видите выручку, количество чеков и что еще есть в этих чеках.
• Логируем открытие / закрытие смены кассы. На лист "смены" теперь автоматически загружаются документы по открытию и закрытию смены.
• Простой abc-отчёт по выручке. В нём вы сможете увидеть товары, которые дают большую часть вашей выручки
Предложение мая:
Продаём несколько доступов за 10 000 (четыре месяца, независимо от количества терминалов), бонус – создаём с покупателем личный чат с нами и покупатель сможет попросить добавить новый отчёт в свою Таблицу на основе загружаемых данных. Пишите @namokonov
Обращаемся из Таблиц ко внешнему API, для новичков
Разбираемся, как получить ключ, как написать простой GET-запрос, как посмотреть его результат, распарсить и вставить в Таблицу: teletype.in/@google_sheets/simple_api_get
Разбираемся, как получить ключ, как написать простой GET-запрос, как посмотреть его результат, распарсить и вставить в Таблицу: teletype.in/@google_sheets/simple_api_get
Teletype
Пишем простое обращение к API на Google Apps Script
Друзья, недавно для своего клиента М. я сделал обращение к API площадки, которая занимается криптовалютой.
Что чаще вспоминают в чате, рейтинг за 2021 год
Друзья, у нас есть чат (в котором практически 3000 участников), недавно у нас появился рейтинг постов, которые вспоминают в чате чаще всего.
Рейтинг, по убыванию:
1. Прекрасная Таблица с подсказками про QUERY от Павла Мрыкина
t.me/google_sheets/616
2. ВПР, достаём последнее значение по ключу
t.me/google_sheets/558
А здесь – t.me/google_sheets/640 всё, что мы писали про ВПР (в подвале поста).
3. Условное форматирование, выделяем дубликаты и не только
t.me/google_sheets/296
4. СОБИРАТОР 4.0 – скрипт для сбора других Таблиц с большим количеством настроек
t.me/google_sheets/661
5. Простой телеграм бот (получает сообщения в Таблицу, сохраняет файлы на Google Диск и отправляет сообщения из Таблицы)
t.me/google_sheets/556
6. ДВССЫЛ (INDIRECT) в массиве – пользовательская функция
t.me/google_sheets/460
7. Памятка по работе с условиями в формулах FILTER, QUERY, SUMIF
t.me/google_sheets/283
8. Памятка с советами, позволяющими ускорить работу документа.
t.me/google_sheets/4
9. Памятка про ? и *
t.me/google_sheets/254
P. S. За помощь в подготовке поста спасибо Виталию П.
Друзья, у нас есть чат (в котором практически 3000 участников), недавно у нас появился рейтинг постов, которые вспоминают в чате чаще всего.
Рейтинг, по убыванию:
1. Прекрасная Таблица с подсказками про QUERY от Павла Мрыкина
t.me/google_sheets/616
2. ВПР, достаём последнее значение по ключу
t.me/google_sheets/558
А здесь – t.me/google_sheets/640 всё, что мы писали про ВПР (в подвале поста).
3. Условное форматирование, выделяем дубликаты и не только
t.me/google_sheets/296
4. СОБИРАТОР 4.0 – скрипт для сбора других Таблиц с большим количеством настроек
t.me/google_sheets/661
5. Простой телеграм бот (получает сообщения в Таблицу, сохраняет файлы на Google Диск и отправляет сообщения из Таблицы)
t.me/google_sheets/556
6. ДВССЫЛ (INDIRECT) в массиве – пользовательская функция
t.me/google_sheets/460
7. Памятка по работе с условиями в формулах FILTER, QUERY, SUMIF
t.me/google_sheets/283
8. Памятка с советами, позволяющими ускорить работу документа.
t.me/google_sheets/4
9. Памятка про ? и *
t.me/google_sheets/254
P. S. За помощь в подготовке поста спасибо Виталию П.
This media is not supported in your browser
VIEW IN TELEGRAM
Несколько функций по одному полю в сводной таблице + перенос значений в строки
Друзья, сегодня хотим напомнить/рассказать про некоторые аспекты в сводных таблицах:
- К одному столбцу можно применять несколько агрегирующих функций;
- Поля в сводной можно переименовать, чтобы безобразие вида "SUM из Остаток, шт." превращать в "Сумма остатков" или что-то еще на человеческом языке;
- Значения (агрегирующие функции) можно переносить в строки.
Все это показываем на гифке:
- создаем сводную, анализируем данные по городам;
- считаем сумму и среднее по остаткам;
- переносим их в строки вместо столбцов;
- переименовываем поля (для этого достаточно прямо в ячейке переименовать поле в одном месте в сводной - оно будет автоматически переименовано везде).
===
Канал про Таблицы: @google_sheets
Чат: @google_spreadsheets_chat
Оглавление канала: goo.gl/HdS2qn
Друзья, сегодня хотим напомнить/рассказать про некоторые аспекты в сводных таблицах:
- К одному столбцу можно применять несколько агрегирующих функций;
- Поля в сводной можно переименовать, чтобы безобразие вида "SUM из Остаток, шт." превращать в "Сумма остатков" или что-то еще на человеческом языке;
- Значения (агрегирующие функции) можно переносить в строки.
Все это показываем на гифке:
- создаем сводную, анализируем данные по городам;
- считаем сумму и среднее по остаткам;
- переносим их в строки вместо столбцов;
- переименовываем поля (для этого достаточно прямо в ячейке переименовать поле в одном месте в сводной - оно будет автоматически переименовано везде).
===
Канал про Таблицы: @google_sheets
Чат: @google_spreadsheets_chat
Оглавление канала: goo.gl/HdS2qn
Скрипты для новичков.
Часть 1.
Привет! Открываем серию, в которой будем вам показывать простые приёмы работы с Таблицей скриптами, также будем немного касаться JS (языка, на основе которого написан Google Apps Script, язык, на котором мы пишем скрипты в Google Docs)
Часть 1:
– обращаемся к текущей Таблице
– к выбранному листу
– забираем диапазон заполненных ячеек
– разбираемся, что нам возвращается
teletype.in/@google_sheets/start_gas1
Часть 1.
Привет! Открываем серию, в которой будем вам показывать простые приёмы работы с Таблицей скриптами, также будем немного касаться JS (языка, на основе которого написан Google Apps Script, язык, на котором мы пишем скрипты в Google Docs)
Часть 1:
– обращаемся к текущей Таблице
– к выбранному листу
– забираем диапазон заполненных ячеек
– разбираемся, что нам возвращается
teletype.in/@google_sheets/start_gas1
Получаем курсы валют в Google Таблицу
Друзья, сегодня у нас мощнейшая статья от Михаила Смирнова.
Внутри статьи:
1) как получить курсы с помощью GOOGLEFINANCE;
2) как получить курсы Центрального банка РФ, cbr.ru;
3) из НБУ, bank.gov.ua;
4) из НБ РБ, nbrb.by;
5) из XE.com;
Для загрузки используем функции IMPORTXML и IMPORTHTML.
Статья про курсы
⚙️
Наш чат: @google_spreadsheets_chat
Оглавление канала: goo.gl/HdS2qn
UPDATE На текущий момент данные ЦБ РФ и Национального банка Республики Беларусь описанным ниже методом получить не удаётся. Предположительно, они закрылись от гугловских IP (с которых идут запросы, когда вы пишите формулы импорта), а, может, и не только от гугловских, но от всего Запада (из России всё доступно).
Друзья, сегодня у нас мощнейшая статья от Михаила Смирнова.
Внутри статьи:
1) как получить курсы с помощью GOOGLEFINANCE;
2) как получить курсы Центрального банка РФ, cbr.ru;
3) из НБУ, bank.gov.ua;
4) из НБ РБ, nbrb.by;
5) из XE.com;
Для загрузки используем функции IMPORTXML и IMPORTHTML.
Статья про курсы
⚙️
Наш чат: @google_spreadsheets_chat
Оглавление канала: goo.gl/HdS2qn
UPDATE На текущий момент данные ЦБ РФ и Национального банка Республики Беларусь описанным ниже методом получить не удаётся. Предположительно, они закрылись от гугловских IP (с которых идут запросы, когда вы пишите формулы импорта), а, может, и не только от гугловских, но от всего Запада (из России всё доступно).
УНИКИ стали еще умнее: выводим только уникальные столбцы с помощью UNIQUE
Друзья. а вы заметили, что у функции
Теперь можно не только выводить уникальные строки, но и столбцы тоже. А еще дубликаты можно удалять совсем. Давайте по порядку. Синтаксис функции:
Но если второй аргумент by_column вы укажете как TRUE (по умолчанию FALSE = удаление дубликатов строк), то
А третий аргумент, равный TRUE, позволяет вообще убрать дублирующиеся строки или столбцы (смотря что во втором) . Иначе говоря: Если в ваших данных были строки, повторяющиеся хотя бы 2 раза, функция
Файл с примерами (Создать копию) -- там продемонстрированы разные варианты.
Друзья. а вы заметили, что у функции
UNIQUE
теперь стало 3 аргумента, а не один?Теперь можно не только выводить уникальные строки, но и столбцы тоже. А еще дубликаты можно удалять совсем. Давайте по порядку. Синтаксис функции:
=UNIQUE(range; [by_column]; [exactly_once])
Первый аргумент - диапазон, тут все без изменений. Второй и третий – необязательные аргументы, так что старые функции работают как работали.Но если второй аргумент by_column вы укажете как TRUE (по умолчанию FALSE = удаление дубликатов строк), то
UNIQUE
выведет только уникальные столбцы, а не строки. А третий аргумент, равный TRUE, позволяет вообще убрать дублирующиеся строки или столбцы (смотря что во втором) . Иначе говоря: Если в ваших данных были строки, повторяющиеся хотя бы 2 раза, функция
UNIQUE
с такой настройкой вообще их не выведет в итоге, даже по 1 разу!Файл с примерами (Создать копию) -- там продемонстрированы разные варианты.
Скрипты для новичков.
Часть 2.
– обращаемся к массиву (а еще к выбранной строке, к столбцу, к последней строке)
– считаем количество строк в массиве
– фильтруем массив от пустых строк
– находим последнюю строку с данными в выбранном столбце
teletype.in/@google_sheets/start_gas2
Часть 2.
– обращаемся к массиву (а еще к выбранной строке, к столбцу, к последней строке)
– считаем количество строк в массиве
– фильтруем массив от пустых строк
– находим последнюю строку с данными в выбранном столбце
teletype.in/@google_sheets/start_gas2
ЗАПУСКАТОР – реагируем на изменения формул / Таблицы и запускаем скрипты
Друзья, в этом посте мы разберём как запустить скрипт после того, как Glide добавил в Таблицу строку. Скрипт будет отправлять письмо нашим менеджерам.
Стандартные триггеры на изменение / редактирование тут не помогут, они реагируют если изменение сделал человек (а еще
Поэтому мы развернем веб-приложение со скриптом отправки письма и напишем пользовательскую функцию, которая будет в него стучаться (да, ведь функция может в fetch)
Поехали делать
1. Пишем в редакторе скриптов целевой Таблицы функцию doGet(), она будет отправлять письмо;
Разворачиваем скрипт как веб-приложение
(запуск от имени – от моего имени;
доступно – всем)
2. Пишем пользовательскую функцию, она будет
– считать количество строк на листе заказы;
– сверять с количеством, которое сохранено в скрипт проперти;
– если в проперти цифра меньше – функция перезапишет проперти и отправит на адрес развернутого приложения строку с данными (в параметре row);
– в функцию вставьте ссылку на ваше развернутое приложение;
3. вставляйте пользовательскую функцию в Таблицу, её аргумент – диапазон из листа заказы;
4. данные меняются - функция пересчитывается;
5. !!!!!!!!
С помощью этого способа вы можете разобраться не только с Glide, а еще и в принципе следить за формулами / данными, запуская скрипты из веб-приложения тогда, когда это вам будет нужно.
За идею сегодняшнего пост спасибо Волонду и Tanaike https://tanaikech.github.io/
Код в пастебин
Друзья, в этом посте мы разберём как запустить скрипт после того, как Glide добавил в Таблицу строку. Скрипт будет отправлять письмо нашим менеджерам.
Стандартные триггеры на изменение / редактирование тут не помогут, они реагируют если изменение сделал человек (а еще
onChange
может сработать при обновлении функции IMPORTRANGE). Поэтому мы развернем веб-приложение со скриптом отправки письма и напишем пользовательскую функцию, которая будет в него стучаться (да, ведь функция может в fetch)
Поехали делать
1. Пишем в редакторе скриптов целевой Таблицы функцию doGet(), она будет отправлять письмо;
function doGet(e) {
MailApp.sendEmail('mail.com', 'тема: привет!', e.parameter.row)
}
Разворачиваем скрипт как веб-приложение
(запуск от имени – от моего имени;
доступно – всем)
2. Пишем пользовательскую функцию, она будет
– считать количество строк на листе заказы;
– сверять с количеством, которое сохранено в скрипт проперти;
– если в проперти цифра меньше – функция перезапишет проперти и отправит на адрес развернутого приложения строку с данными (в параметре row);
– в функцию вставьте ссылку на ваше развернутое приложение;
function zapuskator(array) {
array = array.filter(t => t.some(g => g));
const length = array.map(t => t[0]).length;
const property = PropertiesService.getScriptProperties();
const rows_property = property.getProperty('rows');
if (rows_property < length) {
property.setProperty('rows', length);
const url = 'https://script.google' + '?row=' + array[length - 1].join();
return [
[new Date(), url, UrlFetchApp.fetch(url).getResponseCode()]
]
}
return length
}
3. вставляйте пользовательскую функцию в Таблицу, её аргумент – диапазон из листа заказы;
4. данные меняются - функция пересчитывается;
5. !!!!!!!!
С помощью этого способа вы можете разобраться не только с Glide, а еще и в принципе следить за формулами / данными, запуская скрипты из веб-приложения тогда, когда это вам будет нужно.
За идею сегодняшнего пост спасибо Волонду и Tanaike https://tanaikech.github.io/
Код в пастебин
Книги про таблицы, визуализацию данных, Excel и Power Pivot
Итак, вы любите почитать на досуге и... любите Таблицы, Excel, диаграммы (или еще что-нибудь эдакое). Какой книгой порадовать себя? Давайте посмотрим. Список неполный и ни к чему не обязывающий. Делитесь любимыми книгами по теме и вокруг нее — почитаем и с радостью добавим в обзор!
Итак, вы любите почитать на досуге и... любите Таблицы, Excel, диаграммы (или еще что-нибудь эдакое). Какой книгой порадовать себя? Давайте посмотрим. Список неполный и ни к чему не обязывающий. Делитесь любимыми книгами по теме и вокруг нее — почитаем и с радостью добавим в обзор!
Teletype
Книги про таблицы, визуализацию данных, Excel и Power Pivot
Итак, вы любите почитать на досуге и... любите Excel (или еще что-нибудь эдакое). Какой книгой порадовать себя? Давайте посмотрим...
Флажки в ячейках с формулами
Когда мы вставляем флажки в пустые ячейки (Вставка-Флажок / Insert-Tick Box или клавиши Alt+I --> X) -- мы можем переключать их "руками", меняя значение с ИСТИНА / TRUE на ЛОЖЬ / FALSE в ячейке с флажком.
Но есть и другой вариант применения -- если вы вставляете флажок в ячейку с логическим выражением (возвращающим ИСТИНА или ЛОЖЬ) -- его нельзя будет переключить, но зато значение, которое возвращает формула, будет отображаться у вас в виде флажка.
Когда мы вставляем флажки в пустые ячейки (Вставка-Флажок / Insert-Tick Box или клавиши Alt+I --> X) -- мы можем переключать их "руками", меняя значение с ИСТИНА / TRUE на ЛОЖЬ / FALSE в ячейке с флажком.
Но есть и другой вариант применения -- если вы вставляете флажок в ячейку с логическим выражением (возвращающим ИСТИНА или ЛОЖЬ) -- его нельзя будет переключить, но зато значение, которое возвращает формула, будет отображаться у вас в виде флажка.
А еще с помощью флажков можно вводить (переключать) в ячейках не только логические значения ИСТИНА и ЛОЖЬ.
Если у вас есть в таблице поле, в котором может быть только два варианта (но это не ИСТИНА и ЛОЖЬ, а, допустим, "штатный" и "внештатный" в списке сотрудников), воспользуйтесь проверкой данных.
Данные -> Настроить проверку данных (Data -> Data validation) или клавиши Atl+D --> V
Выберите в качестве правила "Флажок" и отметьте галочку "Использовать персонализированные значения" (Tick Box, Use custom cell values)
Теперь можно переключать флажки, меняя в ячейках указанные текстовые значения.
Если у вас есть в таблице поле, в котором может быть только два варианта (но это не ИСТИНА и ЛОЖЬ, а, допустим, "штатный" и "внештатный" в списке сотрудников), воспользуйтесь проверкой данных.
Данные -> Настроить проверку данных (Data -> Data validation) или клавиши Atl+D --> V
Выберите в качестве правила "Флажок" и отметьте галочку "Использовать персонализированные значения" (Tick Box, Use custom cell values)
Теперь можно переключать флажки, меняя в ячейках указанные текстовые значения.
Напишем-ка бота!
Друзья, вы часто об этом просили, а мы наконец сделали - по ссылке статья, там инструкция и Таблица с кодом и даже гифка, на которой показано, как всё развернуть с нуля за несколько минут.
teletype.in/@google_sheets/androids
p.s. любое изменение кода надо публиковать, редактирую публикацию (нажимая на карандаш и выбирая "новую версию"), так у вас обновится код и не поменяется ссылка на приложение
Друзья, вы часто об этом просили, а мы наконец сделали - по ссылке статья, там инструкция и Таблица с кодом и даже гифка, на которой показано, как всё развернуть с нуля за несколько минут.
teletype.in/@google_sheets/androids
p.s. любое изменение кода надо публиковать, редактирую публикацию (нажимая на карандаш и выбирая "новую версию"), так у вас обновится код и не поменяется ссылка на приложение
Задача - меняем формулы на значения в выбранном диапазоне
/ отображаем статус в toast
Друзья, простой пост со скриптом, вдохновлённый вопросом в нашем чате.
Разбираем скрипт по блокам:
//проверяем – есть ли в активном диапазоне формулы (объединяем диапазон до строки и ищем "=") если формул нет - выводим в toast ошибку и завершаем скрипт
//если формулы есть – берём диапазон как значения и вставляем на прежнее место выводим сообщение в toast
//ну и функция onOpen – формирует меню в Таблице, из которого вы сможете вызвать наш скрипт
Просто копируйте код выше (комментарии можно не удалять).
P.S. На всякий случай – Таблица с примером
/ отображаем статус в toast
Друзья, простой пост со скриптом, вдохновлённый вопросом в нашем чате.
Разбираем скрипт по блокам:
function setValues() {
//определили активный диапазон и активную рабочую книгу const [ss, active_range] =
[SpreadsheetApp.getActive(), SpreadsheetApp.getActiveRange()];
//проверяем – есть ли в активном диапазоне формулы (объединяем диапазон до строки и ищем "=") если формул нет - выводим в toast ошибку и завершаем скрипт
if (!/=/.test(active_range.getFormulas().flat().join(''))){
ss.toast(' формулы в активном диапазоне не обнаружены - ничего не вставляем!');
return;
}
//если формулы есть – берём диапазон как значения и вставляем на прежнее место выводим сообщение в toast
const values = active_range.getValues();
ss.toast('вставляем в активный диапазон значения!')
active_range.setValues(values);
}
//ну и функция onOpen – формирует меню в Таблице, из которого вы сможете вызвать наш скрипт
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu("- > в этом меню у нас скрипты")
.addItem("меняем формулы на значения!", "setValues")
.addToUi();
}
Просто копируйте код выше (комментарии можно не удалять).
P.S. На всякий случай – Таблица с примером
This media is not supported in your browser
VIEW IN TELEGRAM
ПОКАЗЫВАЙ-КА ФАЙЛЫ:
СКРИПТ-ИЗВЛЕКАТОР ИЗ ПАПОК GOOGLE ДИСКА
Друзья, собрали для вас очередной летний и достаточно несложный скрипт:
Чтобы воспользоваться – копируйте Таблицу себе и задайте в ячейке B1 ссылку на одну или несколько папок (если папок несколько – разделите их через запятую).
Таблица со скриптом
Код с комментариями в pastebin
==
Ребята, прямо сейчас ищем двадцатую тысячу подписчиков – подписывайтесь на канал @google_sheets, чат @google_spreadsheets_chat, рассказывайте про нас коллегам и друзьям :)
СКРИПТ-ИЗВЛЕКАТОР ИЗ ПАПОК GOOGLE ДИСКА
Друзья, собрали для вас очередной летний и достаточно несложный скрипт:
> извлекаем файлы из папки / папок, создаём реестр в Таблице
> попадается изображение – добавляем функцию =IMAGE, которая покажет картинку в Таблице
> задавать можно как одну папку, так и несколько
Чтобы воспользоваться – копируйте Таблицу себе и задайте в ячейке B1 ссылку на одну или несколько папок (если папок несколько – разделите их через запятую).
Таблица со скриптом
Код с комментариями в pastebin
==
Ребята, прямо сейчас ищем двадцатую тысячу подписчиков – подписывайтесь на канал @google_sheets, чат @google_spreadsheets_chat, рассказывайте про нас коллегам и друзьям :)
Исторические данные индекса Московской Биржи (IMOEX) в Google Sheets
Михаил Смирнов рассказывает, как собрать ссылку и вооружиться функцией
Достаём индексы, статья в telegraph
P. S. Не можем не напомнить про другой полезный материал от этого же автора: получаем курсы валют в Google Таблицу
Михаил Смирнов рассказывает, как собрать ссылку и вооружиться функцией
IMPORTXML
(или IMPORTHTML
), чтобы получить данные индекса в Таблицу.Достаём индексы, статья в telegraph
P. S. Не можем не напомнить про другой полезный материал от этого же автора: получаем курсы валют в Google Таблицу
Telegraph
Исторические данные индекса Московской Биржи (IMOEX) в Google Sheets
Правильный канал о Таблицах (Google Sheets): @google_sheets Чат канала: @google_spreadsheets_chat Здравствуйте, товарищи! Небольшая инструкция на скорую руку о том, как достать исторические данные индекса московской биржи. Про всё, что можно получить от московской…
ПАРСИМ ОБЪЕКТ ИЗ ЯЧЕЙКИ ТАБЛИЦЫ
Коллеги, свежее из чата: в чат пришёл Владимир, у Владимира в ячейке Таблицы было такое (скриншот, верхняя часть) – ряд объектов с парами ключ / значение, объекты были разделены запятыми.
Задача Владимира – распарсить эту строку и превратить её в плоскую Таблицу (скриншот нижняя часть)
Коллеги, свежее из чата: в чат пришёл Владимир, у Владимира в ячейке Таблицы было такое (скриншот, верхняя часть) – ряд объектов с парами ключ / значение, объекты были разделены запятыми.
Задача Владимира – распарсить эту строку и превратить её в плоскую Таблицу (скриншот нижняя часть)