如何在Google Sheets生成0至10^n范围内的repdigit数字列表
在Google Sheets中生成0到10^n之间的Repdigit数字列表
核心公式
如果需要排除单个数字(仅保留两位及以上的repdigit,如示例中的11、222等),使用以下公式:
=ARRAYFORMULA(FILTER(FLATTEN(SEQUENCE(9)*((10^SEQUENCE(B1,1,1)-1)/9)),FLATTEN(SEQUENCE(9)*((10^SEQUENCE(B1,1,1)-1)/9))>=11))
如果需要包含单个数字(1-9)和0,可调整为:
=ARRAYFORMULA({0;FLATTEN(SEQUENCE(9)*((10^SEQUENCE(B1,1,1)-1)/9))})
公式说明
SEQUENCE(9):生成1-9的基础数字,作为repdigit的重复单元(10^SEQUENCE(B1,1,1)-1)/9:生成1、11、111……直到n位的"全1数"(比如n=3时得到1、11、111)- 两者相乘得到所有1-9重复1到n次的数字(如1、11、111、2、22、222……)
FLATTEN将二维结果转为一维列表FILTER筛选掉小于11的单个数字,匹配示例需求
不同n值的输出示例
- 当B1=2(范围0-100):输出
11,22,33,44,55,66,77,88,99 - 当B1=3(范围0-1000):输出
11,22,...,99,111,222,...,999 - 当B1=4(范围0-10000):输出
11,22,...,99,111,...,999,1111,...,9999 - 当B1=1(范围0-10):无符合条件的两位及以上repdigit,返回空结果
注意事项
- 公式仅依赖Google Sheets原生数组函数,无Lambda或自定义函数,运行高效
- 当n较大时(如n≥10),生成的数字会超出Google Sheets数值精度限制,此时会自动转为科学计数法,若需保留文本格式可嵌套
TEXT函数调整 - 若不需要合并结果,可直接使用
ARRAYFORMULA(SEQUENCE(9)*((10^SEQUENCE(B1,1,1)-1)/9)),结果会以9行n列的二维数组展示
内容的提问来源于stack exchange,提问作者Osm
相关产品推荐
相关产品推荐

