Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3115|回复: 10

[已解决]简化老长老长的公式

[复制链接]
发表于 2014-3-11 21:37 | 显示全部楼层 |阅读模式
本帖最后由 丢丢表格 于 2014-3-11 21:41 编辑

这是块硬骨头,我是啃不动了,在这里有请高手!
最佳答案
2014-3-11 23:22
本帖最后由 孤单无所谓 于 2014-3-11 23:41 编辑


=COLUMN()-1+MMULT(-2^(COLUMN()>2),INT((ROW()-1)/3^(ROW($8:$13)-COLUMN())))
见楼下附件

工作簿2.zip

56.53 KB, 下载次数: 57

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-3-11 22:44 | 显示全部楼层
本帖最后由 xdragon 于 2014-3-11 23:23 编辑

函数玩不来,我玩vba的。。。
  1. Sub t()
  2.   Dim arr(1 To 750, 1 To 6)
  3.   Dim i As Integer, j As Byte, cnt As Byte, cnt2 As Byte
  4.   For j = 1 To UBound(arr, 2)
  5.     For i = 1 To UBound(arr)
  6.       Do Until (i - 1) Mod 3 ^ (7 - j) = 3 ^ (7 - j) - 1 Or i > UBound(arr)
  7.         arr(i, j) = cnt + j
  8.         i = i + 1
  9.       Loop
  10.       If i <= UBound(arr) Then arr(i, j) = cnt + j
  11.       cnt2 = cnt2 + 1
  12.       cnt = cnt + 1
  13.       If cnt2 = 3 Then cnt2 = 0: cnt = cnt - 2
  14.     Next
  15.     cnt = 0: cnt2 = 0
  16.   Next
  17.   Range("B1").Resize(UBound(arr), UBound(arr, 2)) = arr
  18. End Sub
复制代码

评分

参与人数 2 +33 金币 +30 收起 理由
丢丢表格 + 3 我只要数组公式,谢老师的VBA
风林火山 + 30 + 30 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-3-11 23:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 孤单无所谓 于 2014-3-11 23:41 编辑


=COLUMN()-1+MMULT(-2^(COLUMN()>2),INT((ROW()-1)/3^(ROW($8:$13)-COLUMN())))
见楼下附件

评分

参与人数 5 +72 金币 +60 收起 理由
26759761@qq.com + 6 赞一个!
丢丢表格 + 3 太给力了,这就是我想要的
蓝粆 + 3 听说很腻害~!先留着~还嚼不烂~!
笨笨四 + 30 + 30 赞一个!师姐V5
风林火山 + 30 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-3-11 23:30 | 显示全部楼层
只限B1:G1输入,组合键,下拉。


工作簿回复.rar

143.33 KB, 下载次数: 25

回复

使用道具 举报

发表于 2014-3-12 08:41 | 显示全部楼层
好呀,朋友
回复

使用道具 举报

发表于 2014-3-12 09:10 | 显示全部楼层
本帖最后由 vadera 于 2014-3-12 09:54 编辑

=A1+1+INT((ROW()-1)/3^(8-COLUMN()))-3*INT((ROW()-1)/3^(9-COLUMN()))
B1开始右拉下拉

硬改区域数组公式吧
b1:g1
=A1:F1+1+INT((ROW()-1)/3^(8-COLUMN()))-3*INT((ROW()-1)/3^(9-COLUMN()))
然后下拉

要是任意高度区域的话
=A1:FX+1+INT((ROW()-1)/3^(8-COLUMN()))-3*INT((ROW()-1)/3^(9-COLUMN()))

x=最大行号……

评分

参与人数 3 +15 收起 理由
丢丢表格 + 3 老师真牛,学习了!
孤单无所谓 + 9 v哥还是牛!!
蓝粆 + 3 拿走了告诉你一声~~不过我只能评这么多

查看全部评分

回复

使用道具 举报

发表于 2014-3-12 09:37 | 显示全部楼层
不懂呀
回复

使用道具 举报

发表于 2014-3-12 11:04 | 显示全部楼层
实在是高
回复

使用道具 举报

发表于 2014-3-12 11:19 | 显示全部楼层
本帖最后由 vadera 于 2014-3-12 11:20 编辑

要是任意高度区域的话
=A1:FX+1+INT((ROW()-1)/3^(8-COLUMN()))-3*INT((ROW()-1)/3^(9-COLUMN()))

x=最大行号……
回复

使用道具 举报

发表于 2014-3-13 20:29 | 显示全部楼层
数学计算要取整或四舍五入应在最后结果时才进行,为什么对中间过程多次取整?是模型选取有误还是有意设置?若是有意如此,则如此老长老长的公式已经简化完成,若是对最后结果取整,则可以去掉现有的取整函数,可以继续进行合并简化后再取整,公式可以更简单些,不知对否?
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 18:34 , Processed in 0.415197 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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