使用Excel按标识符

时间:2018-06-13 15:21:31

标签: arrays excel excel-formula

我有一个电子表格,其中包含一个名为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可能有更好的方法来做到这一点,如果可能的话,我很乐意尝试,但我无法取得任何进展。感谢您的帮助和建议。

1 个答案:

答案 0 :(得分:0)

如果您可以处理每个MRN每种药物的课程数量,您可以使用Power Query(在Excel 2016中称为Get & Transform)来执行此操作

从您在工作表上提供的数据开始,结果如下所示:

enter image description here

<强> 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"