ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 思维的碰撞-----------通过函数实现行列转换(共六题)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-3-13 17:00 | 显示全部楼层 |阅读模式
详情见附件

补充内容 (2014-3-28 15:36):
另外补充了二道VBA题目,蛇形矩阵和螺旋矩阵,有兴趣的可以看看

补充内容 (2014-3-28 15:37):
补充题在第十二楼[
图片.jpg

行列转化练习.rar

7.29 KB, 下载次数: 48

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-3-13 17:35 | 显示全部楼层
怎么没人做呢,自己顶一下,嘿嘿

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-3-13 18:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
是不是难度低,高手多了是不愿意做哇???????

TA的精华主题

TA的得分主题

发表于 2014-3-13 19:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lm1221 于 2014-3-13 19:12 编辑

先做第一二个
F1
=INDIRECT(TEXT(RIGHT(SMALL(ROW($1:$16)/1%+{1,2,3}*10001,ROW(A1)),4),"r0c00"),)    数组,下拉
I1
=INDIRECT(TEXT(SMALL(ROW($1:$16)/1%+{1,2,3},ROW(A1)),"r0c00"),)   数组,下拉

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-3-13 19:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 lm1221 于 2014-3-14 23:20 编辑

第三四个
=OFFSET($A$1,COLUMN(A1)*4-5+ROW(A1),)   右拖,下拉
=OFFSET($A$1,COLUMN(A1)+ROW(A1)*4-5,)  右拖,下拉
呵呵,有点晕,]删除,什么也没有说

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-3-13 20:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lm1221 发表于 2014-3-13 19:10
先做第一二个
F1
=INDIRECT(TEXT(RIGHT(SMALL(ROW($1:$16)/1%+{1,2,3}*10001,ROW(A1)),4),"r0c00"),)     ...

F1儲存格公式下拉:
  1. =OFFSET(A$1,MOD(ROW(A1)-1,16),INT((ROW(A1)-1)/16))
复制代码
I1儲存格公式下拉:
  1. =OFFSET(A$1,INT((ROW(A1)-1)/3),MOD(ROW(A1)-1,3))
复制代码


L11儲存格公式右拉下拉:
  1. =OFFSET($A$1,ROW(A1)*(-1)^(COLUMN(A1)-1)+(COLUMN(A1)-1)*4+5*ISEVEN(COLUMN(A1))-1,)
复制代码


L16儲存格公式右拉下拉:
  1. =OFFSET($A$1,COLUMN(A1)*(-1)^(ROW(A1)-1)+(ROW(A1)-1)*4+5*ISEVEN(ROW(A1))-1,)
复制代码


後面兩個公式感覺有點太複雜,應該還能簡化…

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-3-14 08:29 | 显示全部楼层
本帖最后由 浮华、缠绕指尖 于 2014-3-14 08:32 编辑

其实第一二个是最简单的思路,很容易理解,答案在附件,只对最后一个有说明


行列转化练习(附答案).rar

9.28 KB, 下载次数: 49

点评

很不错的整理  发表于 2014-3-14 18:55

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-3-14 10:37 | 显示全部楼层
我就来第5种答案,如果仅仅是显示数字的话,
选择L11:O11,多单元格数组公式下拉
  1. =ROW(1:1)+{0,7,8,15}+MOD(COLUMN(B:E),2)*(2-ROW(1:1)*2)
复制代码
如果显示A列结果的话,外套一个index即可,
  1. =INDEX(A:A,ROW(1:1)+{0,7,8,15}+MOD(COLUMN(B:E),2)*(2-ROW(1:1)*2))
复制代码
第6种答案,也差不多思路,不列举了……

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-3-14 13:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
mps777 发表于 2014-3-14 10:37
我就来第5种答案,如果仅仅是显示数字的话,
选择L11:O11,多单元格数组公式下拉如果显示A列结果的话,外套 ...

虽然你这种看似简单,实则不然,因为你是直接输入的0,7,8,15这几个数字,如果按你这样的话,还不如直接将首行或首列用公式下拉了,你觉得呢?

TA的精华主题

TA的得分主题

发表于 2014-3-14 18:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
投机
  1. =LOOKUP(ROW(1:4)+{0,4,8,12},A1:A16)
复制代码
  1. =LOOKUP(ROW(1:4)*4-{3,2,1,0},A1:A16)
复制代码

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-24 02:36 , Processed in 0.050981 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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