在非标准表中使用索引匹配

时间:2019-03-04 09:24:30

标签: excel excel-formula dashboard

我有一个每日性能经理,负责Google Ads等。每天或每隔几天,我都会将基本指标数据复制到表格中,随时间推移我会看到效果和预算支出。

它看起来像这样:

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 中运行该范围,就好像它是真实表一样。我写了以下两个公式:

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

我将为每个客户端重复此操作,以获取不同指标之间性能的每月最新快照。

但是,我收到了#N / A 错误。当我通过Excel中的 Evaluate Formula 函数运行它时,我发现即使将范围正确解析为多个断开连接的行和单元格,当尝试放置 Month时它也卡住了 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 :(得分:0)

您可以将always_remember_meonAuthenticationSuccess()配合使用来方便地创建pivot table

sumproduct-filters

以下是您的示例:

客户A在19/4/3的点击率

booleans

enter image description here

对仪表板的其余字段执行相同操作

答案 1 :(得分:0)

最后,我找到了答案,这要归功于@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)

有效