我有一个大型数据集(超过100万行)的患者姓名,问题/诊断以及输入这些诊断的日期(每个变量都作为列标题)。
我想从此源文件中提取数据,以添加到现有文件中,该文件包含大约900个具有其他人口统计信息的唯一患者姓名(在列中)。
我无法使用vlookup功能,因为大多数患者都有多个问题。
还有其他可能有用的功能或技巧吗?
提前感谢您的时间和精力。
当前数据的示例:
Name Diagnosis Date of Dx
A Head 11/15/12
B Leg 09/08/14
B Elbow 10/11/15
C Hand 02/23/16
A Toe 04/11/13
A Eye 05/25/15
C Ear 12/21/14
我希望数据集看起来像:
Name Dx#1 Date#1 Dx#2 Date#2 Dx#3 Date#3
A Head 11/15/12 Toe 04/11/13 Eye 05/25/15
B Leg 09/08/14 Elbow 10/11/15 n/a n/a
C Hand 02/23/16 Ear 12/21/14 n/a n/a
答案 0 :(得分:0)
我不确定您是否熟悉索引和匹配功能,但您可以使用它们来创建工作表。最简单的方法是添加几个辅助列(在示例3中)并使用match函数获取所需的引用行。
从那里你可以通过前一个匹配来偏移搜索范围以找到下一个匹配。根据患者的病情数量,您可以根据需要多次执行此操作。
之后它是一个简单的索引函数,用所需的值填充表格的行。如果需要,可以使用iferror清理额外的单元格。
假设您的数据位于A1:C8列,输出数据集位于E1:K4列中,以下公式将为您提供所需的输出。辅助列位于L1:N4中。这些公式将放在第2行,但您可以将它们向下拖动以计算其余行。
我将在每个公式上方添加列:
<强>电子强> 没有公式,列出所有患者姓名
<强>˚F强> = INDEX(B:B,L2)
<强“G 强> = INDEX(C:C,L2)
<强>ħ强> = IFERROR(INDEX(B:B,M2),&#34;&#34;)
<强> I 强> = IFERROR(INDEX(C:C,M2),&#34;&#34;)
<强>Ĵ强> = IFERROR(INDEX(B:B,N2),&#34;&#34;)
<强>ķ强> = IFERROR(INDEX(C:C,N2),&#34;&#34;)
<强>→强> =比赛(E2,$ A $ 1:$ A $ 8,0)
<强>中号强> = IFERROR(匹配($ E2,OFFSET($ A $ 1,L2,0,COUNTA($ A:$ A)-L2),0)+ L2,&#34;&#34;)
<强>名词强> = IFERROR(MATCH($ E2,OFFSET($ A $ 1,M2,0,COUNTA($ A:$ A)-M2),0)+ M2,&#34;&#34)
希望这会有所帮助,如果您对公式有任何疑问,请与我们联系。