Бюджет: 1000 UAH Термін: 1 день
Добрий день .
Великий досвід розробки скриптів, для Google таблиць.
Напишіть в лс, потрібно побачити скрипт і таблиці.
Завдання. Є 30 гугл таблиць з данними. Є макрос який створює 4 зведени таблиці Небхідного формату.
Задача зробити можливим запуск данного скрипта у всіх таблицях.
Переписати скрипт який був записаний як макрос і що вказано нижче,
щоб він був виконаний для кожної таблиці в певній папці на Google Диск
і результатом був такий самий як у прикладі. Приклад резултату скрипта https://docs.google.com/spreadsheets/d/18iAH6Q6nhx4Ph6yxytofYgSm4lIf7RuaeXU9m7FdzYM/edit?usp=sharing
Створено 3 нових аркуша, з трьома зведеними таблицями різного формату.
Скрипт буде запускатися з AppsScript. (або інакше, якщо є більш простий варіант)
В папці тільки гугл таблиці. Всі таблиці мають однаковий формат., однакову назву першого листа для обробки.
Скрипт який треба переписати :
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
var sourceData = spreadsheet.getRange('1:1000');
spreadsheet.insertSheet(spreadsheet.getActiveSheet().getIndex() + 1).activate();
spreadsheet.getActiveSheet().setHiddenGridlines(true);
var pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
var pivotGroup = pivotTable.addRowGroup(11);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
var pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortBy(pivotTable.getPivotValues()[0], []);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
spreadsheet.getRange('B:B').activate();
spreadsheet.getActiveRangeList().setNumberFormat('#,##0.00')
.setNumberFormat('#,##0.0')
.setNumberFormat('#,##0');
spreadsheet.getRange('A3').activate();
spreadsheet.getActiveSheet().setColumnWidth(1, 609);
spreadsheet.getRange('A:A').activate();
spreadsheet.getActiveRangeList().setWrapStrategy(SpreadsheetApp.WrapStrategy.WRAP);
spreadsheet.getActiveSheet().setName('Зведена по Клієнтам');
spreadsheet.duplicateActiveSheet();
spreadsheet.getActiveSheet().setName('Зведена по Клієнтам/Товарам');
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(27);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending();
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(30);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(30, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(30, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(31, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(30, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(31, SpreadsheetApp.PivotTableSummarizeFunction.AVERAGE);
pivotGroup = pivotTable.addRowGroup(11);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
spreadsheet.getActiveSheet().setColumnWidth(1, 282);
spreadsheet.getActiveSheet().setColumnWidth(1, 222);
spreadsheet.getActiveSheet().setColumnWidth(2, 301);
spreadsheet.getRange('D:D').activate();
spreadsheet.getActiveRangeList().setNumberFormat('#,##0.00')
.setNumberFormat('#,##0.0');
spreadsheet.getRange('C:C').activate();
spreadsheet.getActiveRangeList().setNumberFormat('#,##0.00')
.setNumberFormat('#,##0.0')
.setNumberFormat('#,##0');
spreadsheet.getRange('E:E').activate();
spreadsheet.getActiveRangeList().setNumberFormat('#,##0.00')
.setNumberFormat('#,##0.0')
.setNumberFormat('#,##0');
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Зведена по Клієнтам'), true);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Зведена по Клієнтам/Товарам'), true);
spreadsheet.duplicateActiveSheet();
spreadsheet.getActiveSheet().setName('Зведена по Товарам');
spreadsheet.getRange('B5').activate();
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(30, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(31, SpreadsheetApp.PivotTableSummarizeFunction.AVERAGE);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(30, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(31, SpreadsheetApp.PivotTableSummarizeFunction.AVERAGE);
pivotValue = pivotTable.addPivotValue(5, SpreadsheetApp.PivotTableSummarizeFunction.COUNTA);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(30, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(31, SpreadsheetApp.PivotTableSummarizeFunction.AVERAGE);
pivotValue = pivotTable.addPivotValue(5, SpreadsheetApp.PivotTableSummarizeFunction.COUNTUNIQUE);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
spreadsheet.getActiveSheet().setColumnWidth(2, 169);
spreadsheet.getActiveSheet().setColumnWidth(1, 492);
spreadsheet.getActiveSheet().setColumnWidth(3, 67);
spreadsheet.getActiveSheet().setColumnWidth(4, 82);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(30, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(5, SpreadsheetApp.PivotTableSummarizeFunction.COUNTUNIQUE);
pivotValue = pivotTable.addPivotValue(31, SpreadsheetApp.PivotTableSummarizeFunction.AVERAGE);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[0], []);
pivotTable = spreadsheet.getRange('A1').createPivotTable(sourceData);
pivotValue = pivotTable.addPivotValue(5, SpreadsheetApp.PivotTableSummarizeFunction.COUNTUNIQUE);
pivotValue = pivotTable.addPivotValue(32, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(30, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
pivotValue = pivotTable.addPivotValue(31, SpreadsheetApp.PivotTableSummarizeFunction.AVERAGE);
pivotGroup = pivotTable.addRowGroup(27);
pivotGroup.sortDescending()
.sortBy(pivotTable.getPivotValues()[1], []);
spreadsheet.getActiveSheet().setColumnWidth(2, 78);
Бюджет: 1000 UAH Термін: 1 день
Добрий день .
Великий досвід розробки скриптів, для Google таблиць.
Напишіть в лс, потрібно побачити скрипт і таблиці.
Бюджет: 1000 UAH Термін: 4 дні
Доброго дня маю досвід у створенні appScript. Пишіть у ПП з радістю вам допоможу.
Всім привіт, потрібно створити сайт для створення івентів та продажу квитків. Можливі варіанти на готовому шаблоні, фреймворк, або ваш варіант. Бажано щоб у вас був досід роботи в розробці сайтів для продажу квитків. Приклади сайтів надішлемо у приватні повідомлення. За необхідності створимо прототип. Якщо ви раніше працювали над створенням подібних сайтів надішліть будь ласка приклади в приватні повідомлення. Деталі обговоримо в приватних повідомленнях. Дякую і гарного дня!
Що ми рахуємо у проєкті: Realized PnL, ROI і Win Rate для криптогаманців - наскільки прибутково гаманець торгував певним токеном за обраний період. На яких даних: історія on-chain транзакцій гаманця (свопи, перекази токенів) + ринкова ціна токена на момент кожної угоди. Основне джерело даних - Moralis: два виклики під час первинного завантаження гаманця - нативні ETH-перекази і усі ERC-20 token transfers. З чим порівнюємо: Nansen.io - беремо як еталон, порівнюємо наші розраховані метрики з тим, що показує Nansen для тих самих гаманців за той самий період. Проблема: наші цифри суттєво відрізняються від Nansen, і ми не до кінця розуміємо, за якими правилами частина дій гаманця має класифікуватись для цілей PnL. Потрібно пофіксити розрахунок Realized PnL, ROI і Win Rate, щоб збігались з Нансеном. В заявці напишіть плз : - досвід в схожих задачах - досвід з Nansen - досвід з Moralis - досвід з DeFiLlama - досвід зі статою по криптоопераціям - приблизну вартість і сроки фіксу
Сайт працює на фреймворку Next.js (на базі React). Потрібно зробити всі пункти за ТЗ. ТЗ додається у файлу. Чекаю на пропозиції.
Сайт для оцінки: https://copy.eurobrands-shop.de/ Завдання: виправити frontend-баги на рівні теми Magento 2 / Amasty theme: CSS/LESS/JS, mobile, RTL, minicart, language dropdown, layout shift/CLS. Формат роботи: - без локального розгортання Magento; - робота через DevTools + вихідники теми; - правки в CSS/LESS/JS/template-файлах теми; - результат: diff / коміт / архів змінених файлів; - деплой і збірка на нашій стороні; - робота через безпечну угоду; - NDA до передачі вихідників/доступів. Що потрібно перевірити і оцінити: 1. RTL / арабська версія: - телефон у шапці відображається некоректно; - зміщення елементів у header, minicart, wishlist/account, product page; - відступи, direction, unicode-bidi, позиціонування. 2. Header: - language dropdown; - cart/wishlist; - hit-area іконок. 3. Minicart: - нестабільно відкривається на деяких сторінках; - перевірити Console / Network / Event Listeners / customer-data / z-index / overlay. 4. Mobile: - бейджі корзини/wishlist занадто великі; - блок Categories стискається/обрізається; - mobile menu / Menu-Account. 5. Product page: - layout shift / CLS зображення; - Add to Cart / Quantity / BOX / PALLET в RTL. 6. Wishlist/account: - /wishlist/ - /mwishlist/ - вкладки, Back button, переповнення лічильників. Проблемні URL: - https://copy.eurobrands-shop.de/alpro - https://copy.eurobrands-shop.de/producers - https://copy.eurobrands-shop.de/wishlist/ - https://copy.eurobrands-shop.de/mwishlist/ В відповіді напишіть: 1. Чи є досвід з Magento 2 frontend? 2. Чи є досвід RTL? 3. Скільки годин потрібно на перший етап? 4. Яка вартість? 5. Коли можете почати? 6. Які доступи потрібні? 7. Чи готові працювати через безпечну угоду і підписати NDA? Важливо: потрібен конкретний результат — виправлення або технічне пояснення по кожному пункту: виправлено / не відтворюється / не frontend-проблема.
Опис замовлення: Шукаємо досвідченого frontend-розробника/фахівця з OpenCart для оптимізації швидкості завантаження сайту (категорії та картки товарів) під вимоги Google Core Web Vitals. Про проект: * CMS: OpenCart. * Специфіка: Сайт працює в режимі каталогу (кошика та оформлення замовлення немає). * Об'єм: 2900 позицій. * Серверна частина: Вже оптимізована (працює на OpenLiteSpeed). * Стек: Робота ведеться виключно з кодом шаблону, модифікаторами та фронтендом. Без роботи із базою даних. Що потрібно зробити (Технічне завдання): 1. Відкладене завантаження скриптів (Delay JS): * Проблема: Сторонні скрипти аналітики (GTM, Google Tag) блокують основний потік на мобільних пристроях приблизно на 4.3 секунди. * Завдання: Налаштувати відкладений запуск цих скриптів. Скрипти повинні активуватися строго по першій дії користувача (перший скролл, тап по екрану або рух миші). * Важливо: Збір статистики, аналітика та робота реклами мають зберегтися у повному обсязі. 2. Виправлення метрики CLS (Стабільність верстки): * Проблема: Сторінка «стрибає» і зсувається під час завантаження картинок. * Завдання: У файлах стилів або шаблону теми жорстко прописати HTML-атрибути width і heightдля всіх зображень товарів у каталозі (листингах) та картках товару. * Мета: Зарезервувати місце під зображення в DOM-дереві до їх фактичного завантаження, щоб унеможливити зсув контенту. Перевірити, щоб адаптивність (CSS) не зламалася. 3. Оптимізація критичного шляху (LCP): * Завдання: Прописати для основного (головного) зображення товару першому екрані тег fetchpriority="high". Це дасть браузеру команду завантажувати головне фото товару у пріоритетному порядку. Вимоги до виконавця та умови приймання: 1. Без зайвих модулів: Робота виконується чистим кодом/модифікаторами, без встановлення додаткових сторонніх чи платних плагінів оптимізації. 2. Безпека та верстка: Ви несете повну відповідальність за верстку. Після внесення правок візуальне відображення сайту на мобільних та ПК, а також функціонал (фільтри, перемикання фото в галереї, меню) повинні залишитися без змін. 3. Критерій здачі роботи (DoD): Надання скріншота та посилання на живий тест звіту Google PageSpeed Insights (для мобільної версії). Показник продуктивності має бути не нижчим за 75 балів, а метрика CLS — не більше 0.1 (у зеленій зоні). Правки вносити строго через модифікатори (OCMOD) або копію теми, щоб не затерти оновлення ядра. У відгуку, будь ласка, вкажіть: 1. Чи був досвід налаштування Delay JS саме для GTM на OpenCart? 2. Термін виконання завдання. 3. Вартість роботи.