在Excel中使用ifs、index、match、嵌套if、countifs识别重复票证

bvpmtnay  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(207)

我有适合与excel公式,我只是不能弄清楚,有时一套以上的眼睛可以使一个问题的短期工作。我一直在追逐谷歌结果很多小时就这一点,所以在这里我终于乞求帮助。
一个带有两个选项卡的工作簿。选项卡“import_1”包含导入的数据,仅为帐号(A列,accountNum)和票据创建日期(B列,Date_Created)。选项卡“import_2”也包含导入的数据,只是账号(A列,accountNum),第二张票据的创建日期(B列,Date_Created),然后是包含我的问题的未知解决方案的帮助列(C列,Repeat_?).
选项卡名称“import_1”:

accountNum   | Date_Created
-------------|-------------
10000001     | 24-APR-2023 12:04:00 AM
10000002     | 25-APR-2023 12:04:00 AM
10000003     | 25-APR-2023 12:04:00 AM
10000004     | 25-APR-2023 12:04:00 AM
10000005     | 25-APR-2023 12:04:00 AM

选项卡名称“import_2”:

accountNum   | Date_Created           | REPEAT_?
-------------|------------------------|----
10000001     | 04/23/2023 12:01:00 AM | No
10000001     | 04/24/2023 12:01:00 AM | No
10000001     | 04/24/2023 12:04:00 AM | Yes
10000001     | 04/24/2023 10:41:00 PM | Yes
10000005     | 04/29/2023 12:10:00 AM | Yes

问题是我需要标识由accountNum创建的REPEAT票据。重复的规则很简单;
1.选项卡“import_2”上的accountNum也必须在选项卡“import_1”上找到
1.来自标签“import_2”的、实际上在标签“import_1”上找到的那些accountNum则需要在标签“import_1”的相同日期/时间或之后标记它们的日期/时间。如果这两个条件都满足,那么我们有一个“是”,如果不是,那么一个“否”。是显然意味着它是重复票证,因为它是在第一个票证创建之后为同一帐户创建的,而不是意味着它不是重复票证,因为第二个票证是在第一个票证创建之前创建的。
如果能得到解决方案,可以添加辅助列,但选项卡“import_2”列C中的某种花哨公式将是最好的结果。我试过:if,ifs,countif,countifs,nested if,index/match and I cannot get any to work.其中一些工作良好的第一部分,在识别重复的账号,但当我试图包括等于或之后(为Date_Created)是它所有去crud的地方。您的专业知识和帮助将不胜感激。
编辑:将选项卡“import_2”单元格C3更正为否

ie3xauqp

ie3xauqp1#

你需要的不仅仅是一个“花哨的公式”。
看起来你既没有完全,也没有仔细,指定一张票是否是重复的条件。您所列出的两个条件将表明import_2上的第二个票证不是重复的。

10000001 | 04/24/2023 12:01:00 AM | Yes

这是因为它不会像您指定的条件所要求的那样在import_1上重复票证。但是您的示例声明它是一个repeat,大概是因为它在import_2上重复了它上面的ticket。
如果我的解释是正确的,除了您提供的两个条件之外,您还需要一个条件来测试import_2上的一个票证是否与import_2上的另一个票证重复。这变得复杂,因为它需要混合ANDOR条件。Excel的COUNTIFS()语句不允许OR条件。
一种可能性是使用两个COUNTIFS()(每个选项卡一个)来处理OR。我把它们放在不同的栏里以帮助保持清晰。第一列检查import_1上是否重复票证,第二列对import_2进行相同的测试。

D2:  =COUNTIFS(import_1!$A$2:$A$6, import_2!A2, import_1!$C$2:$C$6, "<" & import_2!C2)
E2:  =COUNTIFS(import_2!$A$2:$A$6, import_2!A2, import_2!$C$2:$C$6, "<" & import_2!C2)

REPEAT?列对这两个公式求和;如果是SUM > 0,那么你有一个重复:

F2:  =IF(D2 + E2 > 0, "Yes", "No")

我已经将两个日期时间列转换为值(两个选项卡上的C列),只是为了避免Excel将它们视为文本而不是日期时间的任何问题:

C2:  =DATEVALUE(B2) + TIMEVALUE(B2)

这可能就是为什么当你比较日期时,“一切都变糟了”。另一点是,您的条件2说是在第一张票之后创建的,但您的文本说“等于或之后”(这就是为什么我说您没有“仔细”指定条件)。我的公式去后,根据您所陈述的条件。
正如@cybernetic_nomad所说,把你已经尝试过的东西拼出来总是好的。
选项卡导入_2:

相关问题