我有一个电子表格,其中包含一个名为MRN(标识符)的列以及旁边管理的药物。 A列中有重复的MRN,对应不同的药物疗程。我希望做的是在一行中总结与一个MRN相关的所有药物,删除所有重复的药物。它看起来像这样。
| | A | B |
| 1 | MRN Item
| 2 | 1 cefoTAXime
| 3 | 1 ampicillin
| 4 | 1 cefoTAXime
| 5 | 1 vancomycin
| 6 | 1 cefTRIaxone
| 7 | 2 ampicillin
| 8 | 2 vancomycin
| 9 | 2 vancomycin
我有3种不同的公式。第一个是生成一系列独特的MRN。第二种是通过MRN拉出所有药物并将它们列在一行中。第三是从该列表中删除重复项。它们在下面(按顺序)。
{=IFERROR(INDEX($A$2:$A$2885, MATCH(0,COUNTIF(D$1:$D1, $A$2:$A$2885),0 )),"")}
{=INDEX($A$2:$B$2885,SMALL(IF($A$2:$A$2885=$D2,ROW($A$2:$A$2885)),COLUMN(D:D))-4,2)}
{=IFERROR(INDEX($E$2:$AE$2, MATCH(0,COUNTIF(D$3:$D3, $E$2:$AE$2),0 )),"")}
*我知道我可以通过添加IF(ISERROR ...)来编辑第二个,以删除NA并在未找到药物的情况下打印空白,但是此时希望保持公式尽可能简单。
我的问题是,第二个公式并没有通过MRN吸取所有药物,在理想的世界中,我可以将第二个和第三个公式合并为一个,但我不知道如何。这是一个测试文件的链接,显示我的问题和实际的公式。
https://1drv.ms/x/s!ApoCMYBhswHzhooXnumW2iV7yx-JaA
我很欣赏使用python / R可能有更好的方法来做到这一点,如果可能的话,我很乐意尝试,但我无法取得任何进展。感谢您的帮助和建议。
答案 0 :(得分:0)
如果您可以处理每个MRN每种药物的课程数量,您可以使用Power Query
(在Excel 2016中称为Get & Transform
)来执行此操作
从您在工作表上提供的数据开始,结果如下所示:
<强> M-代码强>
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"MRN", Int64.Type}, {"Item", type text}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"MRN"}, {{"Count", each _, type table}}),
#"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows", "Count", {"MRN", "Item"}, {"Count.MRN", "Count.Item"}),
#"Pivoted Column" = Table.Pivot(#"Expanded Count", List.Distinct(#"Expanded Count"[Count.Item]), "Count.Item", "Count.MRN", List.NonNullCount)
in
#"Pivoted Column"