Использование индекса соответствия в нестандартной таблице - PullRequest
0 голосов
/ 04 марта 2019

У меня есть ежедневный менеджер эффективности для объявлений Google и тому подобное.Каждый день или каждые несколько дней я копирую основные метрические данные в таблицу и вижу, как со временем расходуются производительность и бюджет.

Это выглядит примерно так:

date        Clicks Impression CTR   Cost Conversions CPA   CPC   CVR
01/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%
02/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%
03/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%
04/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%
05/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%
06/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%
07/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%
08/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%
09/03/2019  23       150      15%    $20   2         $10  $0.67  8.7%

И так доконец месяцаЭто повторяется для каждого месяца.В конце каждого раздела «Месяц» указывается название месяца и итоги за каждый месяц.

Я управляю множеством клиентов и создал одну книгу Excel, которая позволяет мне делать все это слист для каждого клиента.Моя проблема в том, что мне бы хотелось, чтобы панель инструментов, на которой был сделан снимок производительности каждого клиента за месяц, упростила для меня задачу.

Моя первая попытка была использовать INDEX MATCH , однако вынужен стол для работы.Поэтому я попытался использовать именованные диапазоны для создания таблицы.Я создал Client1StatsTable , где я выбрал только строки с итогами за месяц и Client1MonthName с названием месяца.

Это означало, что я мог запуститьдиапазон в INDEX MATCH , как если бы это был реальный стол.Я написал следующие 2 формулы:

INDEX(Client1StatsTable, MATCH(TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())),"mmmm"),Client1MonthName,0), 3)  
INDEX(Client1StatsTable,MATCH(K12,Client1MonthName,0),3)

Я бы повторил это для каждого клиента, чтобы получить ежемесячный снимок производительности по различным показателям.

Однако я получил ошибку # N / A .Когда я запустил его с помощью функции Evaluate Formula в Excel, я обнаружил, что, хотя диапазон был правильно проанализирован как несколько строк и ячеек, которые были отключены, он застрял, когда пытался разместить Month in MATCH .

Он правильно проанализировал месяц, но просто не смог найти его в диапазоне.

В конечной таблице каждый клиент должен находиться в одной таблице и выглядеть следующим образом:

Date     ClientName    CTR  CPC  CPA  CVR  Spend  Amount of Budget Used
04/03/2019  Client 1    5%   $0.86  $15  2%   $30   15%

Я бы предпочел сделать это без использования VBA.

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

В итоге я нашел ответ, благодаря @hsan, я изначально думал, что значения между именами отдельных месяцев помешают INDEX MATCH .Я оглянулся на исходный код, который проверял его, и я установил конечное значение в MATCH равным -1.Так было:

INDEX(ClientName1!$A$42:$K$420,MATCH(TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())),"mmmm"),ClientName1!$A$42:$A$420,-1),3)

Но когда я сделал

INDEX(ClientName1!$A$42:$K$420,MATCH(TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())),"mmmm"),ClientName1!$A$42:$A$420,0),3)

, это сработало

0 голосов
/ 04 марта 2019

Вы можете воссоздать pivot table для вашего удобства, используя sumproduct-filters с booleans

=Sumproduct(--(condition_1);--(condition_2); Sum_of_range)

Вот ваш пример:

CTR для клиента A на дату4/3/19

= Sumproduct(--(Client_range='A');--(Date_range='4/3/19'); Sum_of_CTR)

enter image description here

Сделайте то же самое для остальных полей вашей панели управления

...