我有一个大型的excel表(25000行,60列),每个医疗访问的行数为2000+患者,然后是访问类型,程序等的列。
每行都有疾病ID [DxID],患者ID [ID]和访问日期[DxDate]。
一些患者对同一种疾病有多排/次就诊。我需要计算队列和病人的疾病数量。
通过连接[ID]和[DxDate],然后使用条件格式查找重复项,我能够在同一天识别访问。然后,我可以手动浏览这些重复项。但是,我无法想到一个公式,它将识别彼此在30天内发生的具有相同ID的行(除了手动读取所有数据行之外)。
我很乐意将数据移到另一个数据库(access,R),但我仍面临同样的问题。
答案 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天内发生的患者/疾病组合(下面的警告)。
如果您在创建 GroupID 之后重新排序数据(因为它们会重新计算,那将是错误的),这将无效。如果您需要在计算 GroupID 后对数据进行排序,我建议复制E列,然后粘贴为值(因此您丢失了公式,但您可以求助并保留正确的 GroupID < /强> S)。
此方法假定组是开放式的。所以 GroupID 不仅仅是访问1并且访问2在30天内 - 如果您在1/1访问1,在1/5访问2,在2/5访问3,他们全部具有相同的 GroupID (即使访问1和访问3相隔超过30天,它们通过访问2连接)。在 PatientIllness 值更改或访问间隔时间超过30天之前, GroupID 不会更改。我无法从你的问题中看出这是否符合你的业务需求,但这是我曾与之合作过的每个石斑鱼的事情。
对于只有25K行的电子表格来说,这可能是不值得的,但如果我没有指出有商业软件包可以像这样进行分组,那我就会失职 - 通常有相当复杂的规则如何分组。例如,慢性与急性护理条件的不同时间段,决定哪些访问组合在一起的不同方式等等。我不为那些制作这些访问的人工作,我不打算链接到任何人,但如果你搜索'医疗保健数据分析器'你会发现一些东西。
希望这有帮助。