Excel:查找具有相同ID的行,彼此在30天内发生

时间:2018-02-21 22:45:06

标签: excel merge duplicates

我有一个大型的excel表(25000行,60列),每个医疗访问的行数为2000+患者,然后是访问类型,程序等的列。

每行都有疾病ID [DxID],患者ID [ID]和访问日期[DxDate]。

一些患者对同一种疾病有多排/次就诊。我需要计算队列和病人的疾病数量。

通过连接[ID]和[DxDate],然后使用条件格式查找重复项,我能够在同一天识别访问。然后,我可以手动浏览这些重复项。但是,我无法想到一个公式,它将识别彼此在30天内发生的具有相同ID的行(除了手动读取所有数据行之外)。

我很乐意将数据移到另一个数据库(access,R),但我仍面临同样的问题。

1 个答案:

答案 0 :(得分:0)

考虑一个包含以下列的电子表格:

A           ||  B           ||  C               ||  D               ||  E
PatientID   ||  IllnessID   ||  Date of Visit   ||  PatientIllness  ||  GroupID

(您现有的电子表格包含A,B和C列;正在添加D和E以获得您问题的解决方案。)

第1行只是列标题。

对于 PatientIllness ,请在单元格D2中输入以下公式:

=CONCATENATE(A2,B2)

然后在列中一直填充。

PatientIllness 升序排序,访问日期升序

在单元格A2中,键入1(这是第一个 GroupID )。

在单元格A3中,输入以下公式:

=IF(AND(D3=D2, DAYS(C3,C2) <31),E2,E2+1)

然后在列中一直填充。

现在,匹配 GroupID 的行是针对彼此在30天内发生的患者/疾病组合(下面的警告)。

  1. 如果您在创建 GroupID 之后重新排序数据(因为它们会重新计算,那将是错误的),这将无效。如果您需要在计算 GroupID 后对数据进行排序,我建议复制E列,然后粘贴为值(因此您丢失了公式,但您可以求助并保留正确的 GroupID < /强> S)。

  2. 此方法假定组是开放式的。所以 GroupID 不仅仅是访问1并且访问2在30天内 - 如果您在1/1访问1,在1/5访问2,在2/5访问3,他们全部具有相同的 GroupID (即使访问1和访问3相隔超过30天,它们通过访问2连接)。在 PatientIllness 值更改或访问间隔时间超过30天之前, GroupID 不会更改。我无法从你的问题中看出这是否符合你的业务需求,但这是我曾与之合作过的每个石斑鱼的事情。

  3. 对于只有25K行的电子表格来说,这可能是不值得的,但如果我没有指出有商业软件包可以像这样进行分组,那我就会失职 - 通常有相当复杂的规则如何分组。例如,慢性与急性护理条件的不同时间段,决定哪些访问组合在一起的不同方式等等。我不为那些制作这些访问的人工作,我不打算链接到任何人,但如果你搜索'医疗保健数据分析器'你会发现一些东西。

  4. 希望这有帮助。