3) Ждем пока прогрузится. Пока ждем переименовываем лист на TypeID (правой кнопкой по названию листа - rename)
3) Создаем в документе с рассчетами лист, называйте, как больше нравится.
Либо
Оба способа рабочие. Смотрите, что будет меньше лагать.
(Можно и через Query, но как показала практика там жесткие тупняки)
Это загрузит сразу весь список с названием и ID
Глава 2: Подтягиваем цены
Дальше буду показывать со скриншотами, т.к. не все знакомы с функционалом доков, или не понимают, что и как.
Сразу оговорюсь, это основа, при которой цены можно выдернуть, дальше модифицируйте свои таблицы по вашему желанию.
Шаг 1. Создаем таблицу/открываем старую
Шаг 2. Создаем лист, куда собственно эти цены мы и будем импортировать. У меня это называется price . (Да, сразу отмечу, что у меня 2 таблицы для цен. price source - импортирует цены, price - подставляет цены к названиям. Мне так удобней, а как вам делать - ваша головная боль)
Шаг 3. Идем: Tools -> Script Editor
Шаг 4. Дальше откроется новая ссылка, где нам будет предложено выбрать, что создаем. Тыкаем на Blank Project.
Шаг 5. Стираем то, что написано в редакторе. И вставляем:
Шаг 6. Сохраняем. Я обзываю этот скрипт loadRegionAggregates
. Больше нам это не требуется (потребуется, если надо будет фильтровать, об этом ниже)
Шаг 7. Идем на лист Price
В ячейку А1 вставляем:
=loadRegionAggregates(Types!A:A)
Шаг 8. Наслаждаемся результатом.
Что можно поправить в скрипте:
Изменить регион
regionID=10000002; << замените на нужный
parseInt(rows[i].getChild("buy").getChild("volume").getValue()), << Объем покупки
parseFloat(rows[i].getChild("buy").getChild("avg").getValue()), << Средняя цена покупки
parseFloat(rows[i].getChild("buy").getChild("max").getValue()), << Максимальная цена покупки
parseFloat(rows[i].getChild("buy").getChild("min").getValue()), << Минимальная цена покупки
parseFloat(rows[i].getChild("buy").getChild("stddev").getValue()), << Что-то с отклонением (кто знает, напишите плз)
parseFloat(rows[i].getChild("buy").getChild("median").getValue()), << Медиана покупки
parseFloat(rows[i].getChild("buy").getChild("percentile").getValue()), << Что-то с процентами(кто знает, напишите плз)
parseInt(rows[i].getChild("sell").getChild("volume").getValue()), << Объем продаж
parseFloat(rows[i].getChild("sell").getChild("avg").getValue()), << Средняя цена продажи
parseFloat(rows[i].getChild("sell").getChild("max").getValue()), << Максимальная цена продажи
parseFloat(rows[i].getChild("sell").getChild("min").getValue()), << Минимальная цена продажи
parseFloat(rows[i].getChild("sell").getChild("stddev").getValue()), << Что-то с отклонением (кто знает, напишите плз)
parseFloat(rows[i].getChild("sell").getChild("median").getValue()), << Медиана покупки
parseFloat(rows[i].getChild("sell").getChild("percentile").getValue()), <<Что-то с процентами(кто знает, напишите плз)
ВАЖНО! Если вам не нужна последняя часть, и вы её удаляете:
parseFloat(rows[i].getChild("sell").getChild("percentile").getValue()),
то не забудьте поставить
];
после запятой в том месте, где заканчивается список того, что вам нужно. (см. пример ниже)
Пример замены забирающий Объем покупок, Максимальную цену покупки, Объем продаж, Минимальную цену продажи
parseInt(rows[i].getChild("buy").getChild("volume").getValue()),
parseFloat(rows[i].getChild("buy").getChild("max").getValue()),
parseInt(rows[i].getChild("sell").getChild("volume").getValue()),
parseFloat(rows[i].getChild("sell").getChild("min").getValue())];
Результат:
https://docs.google....dit?usp=sharing
p.p.s Оригинал скрипта
Что такое VLOOKUP и как этим пользоваться
Сообщение отредактировал Aliner: 18 February 2019 - 23:41