ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 函数与公式 > 怎样用公式返回122333444455555……的数列?

怎样用公式返回122333444455555……的数列?

作者:绿色风 分类: 时间:2022-08-17 浏览:85
楼主
天南地北
Q:怎样用公式返回122333444455555……的数列?

 
A:分两种方法
【方法一】直接在A1输入后下拉生成
公式一:(逆向思维解法,普通公式,计算速度非常快,重点推荐)
  1. =ROUNDUP(-0.5+(1+8*ROW())^0.5/2,)
【方法二】在A1输入第一项即1,然后在A2输入一下公式之一
公式二:(普通公式)
  1. =IF(COMBIN(A1+1,2)=ROW()-1,A1+1,A1)
公式三:(wjc2090742提供)
  1. =A1+(COUNTIF(A$1:A1,A1)=A1)
公式四:(数列解法)
  1. =(ROW()=SUM(A$1:A1)/(A1+1)+1+(A1+2)*((A1+1)/2-(2*A1+3)/6))+A1




该帖已经同步到 天南地北的微博

特殊数列(天南地北).rar
2楼
天南地北
公式一可以这么写可以缩减1个字符
  1. =ROUNDUP((1+8*ROW())^0.5/2-0.5,)
3楼
lrlxxqxa
思路真开阔!
4楼
我一定会回来的
纯公式的输入,是我最想要的,谢谢。
5楼
魔魔
  1. =INT(SQRT(2*ROW())+0.5)
数学解法
6楼
wcymiss
神人,数学高手
7楼
CheryBTL
我想到的不是数学规律,而是凑巧了:
=IF(SUM(N(A$1:A1=A1))=A1,A1+1,A1)
=(SUM(N(A$1:A1=A1))=A1)+A1
8楼
天南地北
看了5楼的公式,发现还真是有文章可做,那我就来把分析过程补充一下吧
5楼分析跟1楼稍有不同
已知数列第K项是n,那么n符合K(K-1)/2+1<=n<=K(K+1)/2
通过这两个一元二次不等式推导出K的范围为SQRT(2n+0.25)-0.5<=k<=SQRT(2n-1.75)+0.5
因为我们要得出的K为整数,所以求出的范围只有一个整数,我们将这个范围扩大(重点所在),变为
SQRT(2n)-0.5<k<SQRT(2n)+0.5
此时我们发现一个问题,K的变动幅度为1,所以扩大范围后,这个区间仍然只有一个整数,所以公式顺其自然按区间小值向上取整或者大值直接取整,公式为
  1. =INT(SQRT(2*ROW())+0.5)
或者
  1. =roundup(SQRT(2*ROW())-0.5,)
或者
  1. =ROUND(SQRT(2*ROW()),)
9楼
bishunbiao
学习下,魔宝

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap