分享

一招解决多行多列变一列的问题

 EXCEL分享 2020-11-13


 前言

你是不是也有过类似的经历,将表格设计成横向格式,给统计和分析带来很大的不方便,其实正确的姿势是第二个,正确的表格应有标题和记录组成,不应该合并单元格,每一列具有相同的属性,每一行代表一条完整的记录。

一旦做成第一种格式,如何快速转换成第二个格式呢?

1列出项目组成员

A9=INDIRECT(TEXT(SMALL(IF($B$2:$F$4<>"",ROW($B$2:$F$4)*1000+COLUMN($B$2:$F$4),65536),ROW(A1)),"R0C000"),0)&""

CTRL+SHIFT+ENTER三键结束,下拉填充公式

解释:

IF($B$2:$F$4<>"",ROW($B$2:$F$4)*1000+COLUMN($B$2:$F$4),65536)

如果$B$2:$F$4区域的单元格内容不为空,则等于该单元格的行号乘以1000加上该单元格的列号,否则等于65536

如:D2不为空,则返回2*1000+4=2004;E2为空值,则返回值为65536

此结果为包含一组数的数组{2002,2003,2004,65536,65536;3002,3003,3004,3005,65536;4002,4003,4004,4005,4006}

SMALL(IF($B$2:$F$4<>"",ROW($B$2:$F$4)*1000+COLUMN($B$2:$F$4),65536),ROW(A1))

取第一个最小的值,如果下拉则顺序取,第二个,第三个最小的,依次类推。

TEXT(SMALL(IF($B$2:$F$4<>"",ROW($B$2:$F$4)*1000+COLUMN($B$2:$F$4),65536),ROW(A1)),"R0C000")

将第一个最小的值,变成文本格式,格式为“R0C000”,如:2001变成文本格式为:R2C001

INDIRECT(TEXT(SMALL(IF($B$2:$F$4<>"",ROW($B$2:$F$4)*1000+COLUMN($B$2:$F$4),65536),ROW(A1)),"R0C000"),0)

返回地址为R2C001单元格的值,即第二行第一列的值,引用格式为R1C1格式。

A9=INDIRECT(TEXT(SMALL(IF($B$2:$F$4<>"",ROW($B$2:$F$4)*1000+COLUMN($B$2:$F$4),65536),ROW(A1)),"R0C000"),0)&""

为了防止出现0值,将结果与空值连接,变成空文本格式

CTRL+SHIFT+ENTER三键结束,形成数组公式

2列出项目名称

B9=INDEX($A$1:$A$4,MIN(IF(ISNUMBER(FIND(A9,$B$2:$F$4,1)),ROW($B$2:$F$4),65536)))

CTRL+SHIFT+ENTER三键结束,下拉填充公式

解释:

FIND(A9,$B$2:$F$4,1))

$B$2:$F$4区域的单元格中查找A9的值,返回该值在某个单元格出现的位置,如果能查找到,则返回具体数值,查找不到返回错误值,此结果仍然是一个数组

{1,#VALUE!,#VALUE!,#VALUE!,#VALUE!;#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!;#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!}

IF(ISNUMBER(FIND(A9,$B$2:$F$4,1)),ROW($B$2:$F$4),65536)

判断FIND的返回值,如果是数字,返回该单元格的行号,否则返回65536

{2,65536,65536,65536,65536;65536,65536,65536,65536,65536;65536,65536,65536,65536,65536}

MIN(IF(ISNUMBER(FIND(A9,$B$2:$F$4,1)),ROW($B$2:$F$4),65536))

取返回数组的最小值,此时为2

INDEX($A$1:$A$4,MIN(IF(ISNUMBER(FIND(A9,$B$2:$F$4,1)),ROW($B$2:$F$4),65536)))

$A$1:$A$4区域中检索出第二个值,即为A2的值“三国”

CTRL+SHIFT+ENTER三键结束,形成数组

 知识点

如果你自以为学会了几个函数就感觉不得了了,其实你的路还很长,加油吧,朋友!

ROW\COLUMN

IF

SMALL

TEXT

INDIRECT

FIND

MIN

ISNUMBER

MIN

INDEX

&""

CTRL+SHIFT+ENTER


END

欢迎入群讨论!(QQ群)


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多