在Excel中处理数据以按特定列排序结果


1

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

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

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         (…)   
(…)

它不涉及任何计算,它只是数据操作,基本上是按每个患者的顺序排序,但我不确定是否有任何这样的功能,尝试过数据透视表,但似乎并不像这样做...任何建议?如果没有公式,没有按钮等,也许你可以建议一个宏?

非常感谢!


powerpivot可能对此有所帮助
PeterH

Answers:


1

使用以下数据:

在此输入图像描述

H2输入:

=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对应于源表中的访问次数。根据您的需求进行调整。


0

目前尚不清楚您是想要进行连续转换,还是只想转换一次数据。如果你只想转换一次数据,这里有一个建议:让我们假设现在这是你的数据:

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

对于日期列,只需按下患者1中的内容:

在此输入图像描述

现在,选择患者2的所有区域并按下:

在此输入图像描述

即使没有约会,它也会奏效

在此输入图像描述

这适合你吗?


0

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

请参阅下面的图片,其中显示了第一个表格中的样本数据,然后是第二个表格中的患者列表,访问次数和日期,所有这些都是所需的顺序。

在此输入图像描述

以下是获得以下内容的公式:

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

访问类型列表: 在Cell 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个公式向下拖动。

我希望这会对你有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.