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

Using Index Match within a non-standard table

我有一个日常绩效管理器,负责 Google 广告等。我每天或每隔几天将基本指标数据复制到 table 中,然后我可以看到性能和预算随时间的变化。

看起来像这样:

date        Clicks Impression CTR   Cost Conversions CPA   CPC   CVR
01/03/2019  23       150      15%       2           [=11=].67  8.7%
02/03/2019  23       150      15%       2           [=11=].67  8.7%
03/03/2019  23       150      15%       2           [=11=].67  8.7%
04/03/2019  23       150      15%       2           [=11=].67  8.7%
05/03/2019  23       150      15%       2           [=11=].67  8.7%
06/03/2019  23       150      15%       2           [=11=].67  8.7%
07/03/2019  23       150      15%       2           [=11=].67  8.7%
08/03/2019  23       150      15%       2           [=11=].67  8.7%
09/03/2019  23       150      15%       2           [=11=].67  8.7%

以此类推,直到月底。每个月重复一次。在每个月部分的末尾,它都有月份的名称和每个月的总数。

我管理着很多客户,我制作了一本 Excel 工作簿,让我可以为每个客户用 sheet 来完成这一切。我的问题是我想要一个仪表板,其中包含每个客户一个月内的表现快照,以便我自己更轻松。

我的第一次尝试是使用 INDEX MATCH,但是,您需要 table 才能工作。所以我尝试使用命名 运行ges 来创建 table。我创建了一个 Client1StatsTable ,其中我只选择了带有月份总数的行和一个 Client1MonthName 运行ge ,其中有月份名称。

这意味着我认为我可以 运行 在 INDEX MATCH 中 运行ge,就像它是真实的 table 一样。我写了以下 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 错误。当我 运行 通过 Excel 中的 Evaluate Formula 函数时,我发现即使 运行ge 被正确解析为多个行和单元格断开连接,当它试图将 Month 放入 MATCH 时卡住了。

它正确解析了月份,但在 运行ge 中找不到它。

结尾 table 应该将每个客户端都集中在一个 table 中,看起来像:

Date     ClientName    CTR  CPC  CPA  CVR  Spend  Amount of Budget Used
04/03/2019  Client 1    5%   [=13=].86    2%      15%

我希望在不使用 VBA 的情况下完成此操作。

您可以使用 sumproduct-filtersbooleans

重新创建 pivot table
=Sumproduct(--(condition_1);--(condition_2); Sum_of_range)

这是你的例子:

客户 A 在 2019 年 4 月 3 日的点击率

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

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

最后我找到了答案,感谢@hsan,我最初认为各个月份名称之间的值会妨碍 INDEX MATCH.我回顾了测试它的原始代码,并将 MATCH 中的最终值设置为 -1。 所以它是:

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

但当我这样做时

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

有效