我从事医疗帐单工作,需要整合患者姓名以便为主管生成报告。问题如下:
我从外部机构收到一份详细报告,其中列出了上个月的所有药房、医生、患者和诊所。最新报告有超过 12,000 行。每一行代表给患者开的一种药物。因此,多行可能包含同一患者的信息。为了演示,我创建了以下示例:
因此,John Doe 有两条记录,因为他被开了两种不同类型的药物。我想创建一份报告,告诉我在特定诊所有多少个人患者。我可以创建一个数据透视表来告诉我“数量”,但由于它没有考虑到具有相同名字、姓氏和出生日期的人是同一个人 - 我的结果相差甚远。我希望有一种方法可以将单个患者的所有条目合并到一个组中,这样个人就不会被重复或三次计算。
答案1
在你的情况下我会这样做:
- 将收到的数据转换为表格。
- 在数据右侧添加“名称”列;用于
concat
实现此目的 - 在其右侧添加“姓名 + 出生日期”列以确保唯一性;再次使用
concat
- 使用表格功能区中的“使用数据透视表汇总”功能
- 确保选中数据透视表选项底部的“将此数据添加到数据模型”复选框
- 将“诊所位置”、“患者出生日期”和“姓名”拖到数据透视表字段的“行”部分。
- 将“姓名和出生日期”拖到数据透视表字段的“总和值”部分。确保它显示“计数”
- 重复步骤 7。将“姓名和出生日期”拖到数据透视表字段的“总和值”部分。单击条目并选择“值字段设置”。在“汇总值字段”列表中,滚动到底部并选择“不同计数”
答案2
抱歉造成混淆。这是计算每个诊所中唯一患者数量的方法。在此表中,我添加了两列以列出诊所并计算每个诊所中唯一患者的数量。
如果诊所列表相当小,您可以直接将它们输入到 G 列中。或者,您可以在 G2 中输入以下公式,然后向下填充以列出所有诊所:
=IFERROR(INDEX($E$2:$E$n,MATCH(0,INDEX(COUNTIF($G$1:G1,$E$2:$E$n),0,0),0)),"")
此处的“n”是患者列表中的最后一行编号。此公式在 E 列中查找所有唯一的诊所名称,并将其列在 G 列中。
列出诊所后,在 H2 中输入此公式:
=SUM(IFERROR(1/COUNTIFS(A$2:A$n,A$2:A$n,B$2:B$n,B$2:B$n,C$2:C$n,C$2:C$n,E$2:E$n,G2),0))
再次,“n”是患者列表中最后一行的编号。最后一个公式是数组公式- 必须通过键入 CTRL-Shift Enter 来输入,而不是直接按 Enter。如果操作正确,公式栏中的公式将被花括号 {} 包围。
输入完成后,您可以选择 H2 并向下填写到最后一个诊所。
此公式计算唯一患者的数量(具有不同名字、姓氏和出生日期的条目)在每个诊所,并在 H 列列出总数。
祝你好运,希望这会有所帮助。