ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6653|回复: 11

[求助]转置后的表格如何还能按照大小排列?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-2-12 15:13 | 显示全部楼层 |阅读模式

转置后的表格如何还能按照大小排列?

希望能用函数一次解决。

IjsHhwaf.rar (2.16 KB, 下载次数: 158)


[此贴子已经被作者于2008-2-12 15:29:00编辑过]

56zueD2A.rar

2.03 KB, 下载次数: 63

[求助]转置后的表格如何还能按照大小排列?

IEdAP3Ra.rar

2.03 KB, 下载次数: 43

[求助]转置后的表格如何还能按照大小排列?

TA的精华主题

TA的得分主题

发表于 2008-2-12 15:42 | 显示全部楼层

回复:(samsoncsr)[求助]转置后的表格如何还能按照大...

A8=INDEX($A$1:$F$2,COLUMN(A:A),RIGHT(SMALL($A$1:$F$1*1000+COLUMN($A:$F),ROW(1:1)),3))

数组公式,按Ctrl+Shift+Enter结束。

把公式向右向下复制。

或:

选择A8:B13,输入公式:

=INDEX($A$1:$F$2,COLUMN(A:B),RIGHT(SMALL($A$1:$F$1*1000+COLUMN($A:$F),ROW(1:6)),3))

按三键结束。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-12 16:33 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-12 19:04 | 显示全部楼层
QUOTE:
以下是引用山菊花在2008-2-12 15:42:06的发言:

A8=INDEX($A$1:$F$2,COLUMN(A:A),RIGHT(SMALL($A$1:$F$1*1000+COLUMN($A:$F),ROW(1:1)),3))

数组公式,按Ctrl+Shift+Enter结束。

把公式向右向下复制。

或:

选择A8:B13,输入公式:

=INDEX($A$1:$F$2,COLUMN(A:B),RIGHT(SMALL($A$1:$F$1*1000+COLUMN($A:$F),ROW(1:6)),3))

按三键结束。

在函数INDEX数组应用上犯晕了,希望山版主能解释一下INDEX函数中第二参数和第上参数的数组中“  ,”“  ;”的应用规律。

1:{=INDEX($A$1:$F$2,{1,2},{"001";"004";"006";"002";"003";"005"})}

2:{=INDEX($A$1:$F$2,{1;2},{"001","004","006","002","003","005"})}

 

TA的精华主题

TA的得分主题

发表于 2008-2-13 00:16 | 显示全部楼层

回复:(samsoncsr)

这个晕犯得好,佩服你对公式一丝不苟、锲而不舍的钻研精神。

从帮助中可知,INDEX()有两种形式,这里用的是它的数组形式。它的参数意义为:

INDEX(数组,行序号,列序号)

结果中“孙六”所在位置为“第2列第3行”。

它引用的数据为:

=INDEX($A$1:$F$2,{1,2},{"001";"004";"006";"002";"003";"005"})

当前位置为第2列,对应取第1个数组第2个数作行序号,这个行序号与当前单元格的列位置有关,即,这个表示行序号的数组与“列”匹配,它必须是一个水平数组。

当前单元格为第3行,对应取第2个数组第3个数作列序号,同理,这个数组必须是一个垂直数组,如果当前单元格为第4行,则取该数组第4个值为列序号。

如果生成的结果要求得到如下格式:

张三

赵二

孙六

李四

王五

钱一

1

1

1

2

2

2

则公式为:

=INDEX($A$1:$F$2,{2;1},{"001","004","006","002","003","005"})

如果当前位置在第1行,则取第1个数组第1个值,如果当前位置在第2行,则取第1个数组第2个值,第1个数组与结果位置行的变化有关,该数组必须是一个垂直数组。

同理,第2个数组必须是一个水平数组。

到此为止,基本上把问题说明白了,但听起来可能还是晕,如果对数组还没有足够的了解,这毫不为奇。如果真的这样,建议先把它放一放,只要你坚持学习、应用Excel,过一段时间再回来,一定会有比现在高一层次的认识。

2008是满怀激情的一年,祝朋友们春华秋实,天天感受成功的喜悦。

[求助]转置后的表格如何还能按照大小排列?

[求助]转置后的表格如何还能按照大小排列?

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-13 01:13 | 显示全部楼层

山版主真是好老师呀,祝山版主好人一生平安!

我举出这个示例主要是想生成一个柱形图,1代表上白班,2代表上夜班,这样无论人员如何调班,都不影响柱形图先白班后夜班的排列顺序。

[此贴子已经被作者于2008-2-13 1:29:30编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-14 12:51 | 显示全部楼层

在各位高手的帮助下,我对公式进行了改进,可以转置多行多列,不但能按照第一优先大小排序转置,还能按照第二优先大小排序。

在这个基础上,作出的柱形图可以对1班次和2班次的产能高低自动排序,很是方便。

公式为:=INDEX($B$2:$K$6,COLUMN(A:E),RIGHT(SMALL(($B$2:$K$2*1000+FIXED($B$4:$K$4,1,1))*1000+COLUMN($A:$J),ROW(1:10)),2))

 

 

[此贴子已经被作者于2008-2-14 15:48:04编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-14 15:30 | 显示全部楼层

继续探究:如果我想由纵向变为横向转置,且按照大小排列,又该如何做呢?

  RNRIuqw8.rar (1.48 KB, 下载次数: 37)


 

源表
1张三
2李四
2王五
1赵二
2钱一
1孙六
目的表
111222
张三赵二孙六李四王五钱一

[此贴子已经被作者于2008-2-14 15:45:51编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-14 15:41 | 显示全部楼层

搞定了:

=INDEX($H$1:$I$6,RIGHT(SMALL($H$1:$H$6*1000+ROW(1:6),COLUMN(A:F)),3),ROW(1:2))

呵呵!收获中:-)

TA的精华主题

TA的得分主题

发表于 2009-6-24 16:20 | 显示全部楼层

为什么不能实现表格里面“问题一”要求实现的效果,

我不知道为什么我做了好多次都发现不行,关键是SMALL函数之后就错了,不知道错在哪里,拜托,各位能帮我看下吗

数组入门练习题.rar

3.36 KB, 下载次数: 16

不懂怎么做这试题

数组入门练习题.rar

3.36 KB, 下载次数: 13

SMALL函数与IF的嵌套

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-5 10:07 , Processed in 0.075385 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表