ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 如何把A1:B32区域变换成D3:K10区域?(用一个多单元格数组公式能实现吗?)

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-28 22:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 山桑弓 于 2010-8-28 22:16 发表
D3=INDIRECT(ADDRESS(8*(INT(COLUMN()/2)-2)+IF(MOD(INT(COLUMN()/2),2),11-ROW(),ROW()-2),MOD(COLUMN(),2)+1))
普通公式,右拉,下拉。
只会用普通公式做,多单元格的数组公式不太会,不知道怎么做。

你这个公式很好,虽然是下拉右拉,但整个区域的64格的公式是一样的。犹如多单元格数组公式。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-28 22:56 | 显示全部楼层
原帖由 piny 于 2010-8-28 22:40 发表
=INDIRECT(ADDRESS(INT((COLUMN(A1)-1)/4)*16+IF(MOD(COLUMN(A1)-1,4)

你的两个方法很好
非常正确。谢谢。

[ 本帖最后由 lhx120824 于 2010-8-28 22:57 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-8-29 00:28 | 显示全部楼层
真是太牛了,简直无所不能
先验证,后学习

TA的精华主题

TA的得分主题

发表于 2010-8-29 01:46 | 显示全部楼层
多单元格数组公式。能凑合完成一个功能吧,定义名称后可读性就更强了。公式等于重复了一次。扩展性还是有的,更改相应参数即可。

区域变换1.rar

5.47 KB, 下载次数: 22

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-29 01:53 | 显示全部楼层
原帖由 shaowu459 于 2010-8-29 01:46 发表
多单元格数组公式。能凑合完成一个功能吧,定义名称后可读性就更强了。公式等于重复了一次。扩展性还是有的,更改相应参数即可。

功是很强大,先回复,再慢慢研究消化,谢谢提供。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-29 01:56 | 显示全部楼层
是多单元格数组公式,需要细细研究才能读懂。
=IF(MOD(COLUMN(),2),T(OFFSET(A1,CHOOSE(MOD(INT(COLUMN(A:H)/2.1),2)+1,ROW(1:8),9-ROW(1:8))+INT(COLUMN(A:H)/2.1)*8-1,MOD(COLUMN(),2))),N(OFFSET(A1,CHOOSE(MOD(INT(COLUMN(A:H)/2.1),2)+1,ROW(1:8),9-ROW(1:8))+INT(COLUMN(A:H)/2.1)*8-1,MOD(COLUMN(),2))))

TA的精华主题

TA的得分主题

发表于 2010-8-29 01:59 | 显示全部楼层
更新了一下,多单元个数组公式精简了。不过前提是要把第一列的序号单元格设置成文本格式。应该不会增加工作量,因为文本数字也是可以通过鼠标拉动递增的。

区域变换1.rar

5.79 KB, 下载次数: 21

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-29 05:54 | 显示全部楼层
原帖由 shaowu459 于 2010-8-29 01:59 发表
更新了一下,多单元个数组公式精简了。不过前提是要把第一列的序号单元格设置成文本格式。应该不会增加工作量,因为文本数字也是可以通过鼠标拉动递增的。

这次的修改公式简练多了,也好懂了,谢谢.
方法一:
=T(INDIRECT(CHOOSE(MOD(COLUMN(),2)+1,"A","B")&CHOOSE(MOD(INT(COLUMN(A:H)/2.1),2)+1,ROW(1:8),9-ROW(1:8))+INT(COLUMN(A:H)/2.1)*8))

方法二:
=T(OFFSET(A1,CHOOSE(MOD(INT(COLUMN(A:H)/2.1),2)+1,ROW(1:8),9-ROW(1:8))+INT(COLUMN(A:H)/2.1)*8-1,MOD(COLUMN(),2)))

TA的精华主题

TA的得分主题

发表于 2010-8-29 07:30 | 显示全部楼层
原帖由 piny 于 2010-8-28 22:40 发表
=INDIRECT(ADDRESS(INT((COLUMN(A1)-1)/4)*16+IF(MOD(COLUMN(A1)-1,4)


=INDIRECT(ADDRESS(INT((COLUMN(A1)-1)/4)*16+IF(MOD(COLUMN(A1)-1,4)<2,ROW(A1),17-ROW(A1)),MOD(COLUMN(A1)-1,2)+1))

address(行號, 列號)即傳回該列該行之儲存格位址

如address(1,4)=$D$1

INDIRECT($D$1)則是把D1之值引用出來

TA的精华主题

TA的得分主题

发表于 2010-8-29 08:34 | 显示全部楼层
原帖由 shaowu459 于 2010-8-29 01:59 发表
更新了一下,多单元个数组公式精简了。不过前提是要把第一列的序号单元格设置成文本格式。应该不会增加工作量,因为文本数字也是可以通过鼠标拉动递增的。

学习了,太强大了!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 04:56 , Processed in 0.040717 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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