操作 Excel 中的数据,按特定列对结果进行排序

操作 Excel 中的数据,按特定列对结果进行排序

我想让某些列(但不是全部)中的信息按行显示,请参见下面的示例。

这就是我所拥有的(不幸的是,这不允许额外的空间,所以一切都未对齐,请尝试想象所有对齐):

Patient     Visit 1     Visit 2     Visit 3     Visit 4(…)

1           22Dec       12Jan       03Feb    
2           3Jan        03Feb       01Mar
3           10Dec       03Jan       23Jan   
(…)

(等等,包含数百名患者的长数据库)

我想要的效果如下:

Patient     Visit type      Date

1           Visit 1         22Dec
1           Visit 2         12Jan    
1           Visit 3         03Feb   
2           Visit 1         23Jan   
2           Visit 2         (…)   
(…)

它不涉及任何计算,只是数据操作,基本上是按患者就诊顺序排序,但我不确定是否有任何函数可以做到这一点,尝试过数据透视表,但似乎不太像这样……有什么建议吗?如果没有公式、没有按钮等,也许您可​​以建议一个宏?

非常感谢!

答案1

使用如下数据:

在此处输入图片描述

氢气进入:

=ROUNDUP(ROWS($1:1)/6,0)

并向下复制。在单元格中I2进入:

=INDEX($B$1:$G$1,MOD(ROWS($1:1)-1,6)+1)

并向下复制。在J2进入:

=INDEX($B$2:$G$10,ROUNDUP(ROWS($1:1)/6,0),MOD(ROWS($1:1)-1,5)+1)

并向下复制:

在此处输入图片描述

笔记:

6这些公式中的 对应于源表中的访问次数。请根据需要进行调整。

答案2

不清楚您是否想要连续转换,还是只转换一次数据。如果您只想转换一次数据,这里有一个建议:让我们想象一下这是您现在的数据:

在此处输入图片描述

由于每个患者最多有 4 次就诊,请手动为第一个患者构建行,如下所示:

在此处输入图片描述

对于日期列,应用 VLOOKUP,根据访问类型搜索列:

在此处输入图片描述

现在手动为第二位患者构建行,但是现在您可以使用一些公式来向下推:

在此处输入图片描述

对于日期列,只需将患者 1 的数据向下推即可:

在此处输入图片描述

现在,选择患者 2 的所有块并向下按:

在此处输入图片描述

即使没有日期,它也会起作用

在此处输入图片描述

这适合你吗?

答案3

我的方法是使用双向查找技术,就像上面的一个答案一样。

请参见下面的图片,其中第一个表中显示了样本数据,然后第二个表中显示了患者列表、就诊号码和日期,所有内容均按所需顺序显示。

在此处输入图片描述

以下是获取的公式:

患者名单:在单元格 A10 中,=INT((ROW(A1)-1)/5)+1

访问类型列表: 在单元格 B10 中,="Visit"&INT(MOD(ROW(A1)-1,5))+1

日期列表 在单元格 C10 中,=INDEX($B$2:$F$8,MATCH(A10,A$2:A$8,0),MATCH(B10,$B$1:$F$1,0))

将所有 3 个公式向下拖动,直至达到所需位置。

我希望这对你有帮助。

相关内容