gSheets - объединение двух вкладок (листов) разного размера на основе общего ключа (даты) - PullRequest
0 голосов
/ 16 октября 2018

Проблема : я ищу способ объединить две таблицы данных в файле gSheet .У меня есть дата, показы, клики в одном и 3 разных типа конверсии в другом (с указанием даты).Два листа отличаются по длине (одна дата не только в одной строке).Я хотел бы создать «основной» лист с датой, показами, кликами и всеми типами конверсий, где каждая дата присутствует только один раз.Если на какой-либо из таблиц нет данных за определенную дату, их можно оставить пустыми.Если на обоих листах нет данных, дату можно пропустить, для меня это не имеет значения.Размер диапазонов может сильно различаться, и данных будет много (10 000+ строк).Я пытался найти решения (vlookup + arrayformula, query и т. Д.), Но ничего не предлагалось, так как он работал из-за разных размеров диапазона.

Пример таблицы данных здесь: https://docs.google.com/spreadsheets/d/1s5D9GI9cSQrc3Hpv8fOqw7c1Ae9UaX5N0IXO-OtF7GM/edit?usp=sharing

Справочная информация : я пытаюсь создать маркетинговую панель мониторинга в gSheets для импорта в Data Studio.Хотя Data Studio поддерживает смешивание данных (что я ищу здесь), она не поддерживает вычисленные метрики в смешанных данных.Поэтому я планирую создать Google Sheet с «смешанными» данными + все показатели и импортировать их в Data Studio.

Заранее большое спасибо!

1 Ответ

0 голосов
/ 16 октября 2018

Если я вас правильно понял, вам нужно использовать разные формулы для каждого столбца.В первом перечислены все уникальные значения из первого листа, который в вашем образце называется «Данные AdWords». Формула выглядит следующим образом:

Остальные просто используют функцию Arrayformula с sumif для суммирования итогов за каждую дату.Поместив это во второй ряд, чтобы вы могли иметь строку заголовка, это один из способов сделать это.Для показов это становится следующим:

=arrayformula(if(A2:A > 0;sumif('AdWords Data'!A2:A;A2:A;'AdWords Data'!B2:B);))

Функция arrayformula () позволяет нам применить остальное к каждой строке на листе.Внутри этого мы начинаем с IF (), который используется для того, чтобы не помещать значения в строки, у которых нет дат.Обратите внимание на отличие от Excel, где последняя часть функции IF () не имеет значения и, в особенности, не имеет "", которая фактически поместит значение в ячейку.Это не опечатка, поэтому, пожалуйста, не добавляйте кавычки.Вы не увидите его, но функции и любой пользовательский код, который вы напишете, приведут вас в замешательство, пытаясь понять, почему.Оператор IF () проверяет, имеет ли значение столбец A.Если это так, примените функцию SUMIF ().Здесь мы суммируем элементы из столбца B в листе «Данные AdWords», ЕСЛИ содержимое столбца A на этом же листе соответствует содержимому столбца этого листа A. Добавление новых данных автоматически расширит значения, указанные здесь.

Чтобы это не редактировалось, поместите его в строку «Заголовок» и в качестве заголовка в первой строке, внеся следующие изменения:

=ARRAYFORMULA(IF(ROW(A1:A)=ROW(A1);"Impressions";if(A1:A > 0;sumif('AdWords Data'!A1:A;A1:A;'AdWords Data'!B1:B);)))

Это начинается с оператора IF, который проверяет, какая строкаформула массива работает над.Если это первый ряд, он помещает «Впечатления» для Заголовка.Если это какая-либо другая строка, она применяет функцию IF (), приведенную выше.

Я поместил все формулы в вашем файле с образцами на лист, называемый «Образец KS», со второй версией в столбце H.

Если я вас неправильно понял, я прошу прощения.Если это так, не могли бы вы сделать образец листа того, как вы ожидаете, что результаты будут выглядеть?

С уважением, Карл S

...