【问题标题】:Cross Referencing Data in ExcelExcel 中的交叉引用数据
【发布时间】:2016-01-29 01:33:15
【问题描述】:

我正在尝试为我的企业创建一个广告分析工具。我有一个带有 3 张表格的 Excel 电子表格。表 1 包含有关广告点击者的数据,表 2 包含有关产品购买者的信息,表 3 应根据表 1 和表 2 之间的交叉引用数据收集数据。

Sheet 1 中的列如下:

    A           B       C               D              E                F       G
------------------------------------------------------------------------------------
product type, tag, click date/time, IP address, expiry time (days), expiry date/time 

每一行代表一次点击。过期时间(天)由产品类型决定,过期时间/日期是点击日期/时间加上过期时间(天)。标签是一个代码,它告诉我点击器在哪里找到了链接。

Sheet 2 中的列如下:

       A           B               C
---------------------------------------------
product type, IP address, purchase date/time. 

每一行代表一个产品销售。

工作表 2 中的行数多于工作表 1 中的行数。

我想在工作表 1 和工作表 2 之间匹配三条信息:IP address, product type 以及 purchase date/time(工作表 2)是否介于点击 date/time 和到期 date/time 之间。我制作了可以验证是否发生这种情况的公式,但仅适用于每个工作表中分配的单元格。

我试图让 Excel 将工作表 1 中的一行与工作表 2 中的所有行匹配。由于工作表 2 中的行数比工作表 1 中的多,因此工作表 1 中定义的每个标签可能有多个匹配项,因为客户可能会在点击链接后决定购买不止一种产品。

有没有办法尝试匹配两个工作表之间的数据,然后收集工作表 3 中的匹配数?如果先匹配IP地址和产品类型可能会更容易实现,然后尝试查看purchase date/time是否在点击date/time和到期date/time之间。

对此的任何帮助将不胜感激,并在此先感谢您。这一直困扰着我一段时间,我无法弄清楚。

【问题讨论】:

  • COUNTIFS 可能是您正在寻找的。如果您要检查点击是否及时...
  • =COUNTIFS(Sheet1!A:A,Sheet2!A2,Sheet1!D:D,Sheet2!B2,Sheet1!C:C,"<="&Sheet2!C2,Sheet1!F:F,">="&Sheet2!C2) 之类的东西,然后复制下来(检查 sheet2 和 sheet1)

标签: excel match analytics cross-reference


【解决方案1】:

我想我有一个好的开始。使用 vlookup,您可以指定多个条件。首先将有用的数据放入一张表中 - 我将使用“sheet2”的 D 和 E 列并使用这些数据:

在 D 中:

=VLOOKUP(A2& " "&B2,Sheet1!$A$2:[BOTTOM RIGHT OF TABLE],3)

末尾的 3 表示要返回点击日期。

在 E 中:

=VLOOKUP(A2& " "&B2,Sheet1!$A$2:[BOTTOM RIGHT OF TABLE],6)

末尾的 4 表示您要重新调整到期日期。

一旦它们在一张纸上,您可以进行 if 语句比较,以查看日期(C 列)是否介于两个日期(D 和 E 列)之间。 这是 if 语句:

=IF(AND(C2>=D2,C2<=E2),1,0)

这有一个不足之处,那就是如果产品和 ip 有多个匹配项 - 这只会返回 1,否则您正在谈论在 VBA 中编写脚本。

【讨论】:

  • 您好 Beutler,感谢您的建议。这很有帮助。对于您的最后评论,这是否意味着如果 IP 和产品类型有多个匹配项,我必须使用 VBA?我在某处读到了关于用 MATCH 和 INDEX 的组合替换 VLOOKUP 函数的内容。这对我有帮助吗,还是我仍然需要使用 VBA 来查找多个匹配项?
  • 不幸的是,我对 INDEX 和 MATCH 并不十分熟悉。据我所知,它具有类似的功能,但有 4 个好处(没有一个可以解决您遇到的问题):这些是 1)您可以向上查找(vlookup 必须在最左侧的列中具有查找值) 2)对插入/删除行更好的安全性。 3)Vlookup 有 255 个字符的查找限制。 4) 索引/匹配更快。我认为这些都不是巨大的优势,除非你有一些严肃的数据并且在以有用的方式组织它时遇到问题。
  • 不确定您是否尝试过 vlookup,但我忘记提及的另一件事是我必须从 IP 地址中取出“.”(查找替换 . 无用)。如果您想尝试 VBA,我想您必须有几个巧妙的循环(可能使用字典)才能以所需的方式组织数据。
  • 好的。我觉得我懂了。是否可以使用 VLOOKUP 功能使用 IP 地址和产品类型查找并匹配一行,然后让 excel 将购买日期/时间粘贴到同一行的表 3 中?然后在完成之后,我可以运行相同的匹配函数但跳过已经匹配的行并找到下一个匹配的行吗?还是我必须在 VBA 中这样做?
  • 我发布的解决方案应该可以解决您问题的第一部分。我真的不认为没有VBA可以在Excel中使用公式操作来解决这个问题,像这样搜索多个列表的迭代性质就是编程的目的。对不起:/
【解决方案2】:

在 excel 中,您可以像这样根据工作表引用单元格并将其放在第三张工作表上:

=Sheet1!A1+Sheet2!A2

【讨论】:

    猜你喜欢
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多