如何在Excel中生成逐行右移1的0和1数组?
Excel 生成逐行右移的0/1数组解法
核心思路
本质就是判断当前单元格的列位置和行号是否相等,相等就输出1,不相等输出0,以此实现每行的1逐列右移。
普通Excel版本(无动态数组功能)
从A1单元格开始操作:
- 在A1输入公式:
=IF(COLUMN()=ROW(),1,0) - 先向右拖动填充到你需要的最后一列(比如D列),再向下拖动到目标行数(比如第4行),就能得到你要的结果。
原理很直接:
ROW()取当前单元格的行号(比如A2返回2)COLUMN()取当前单元格的列号(比如B1返回2)- 两者相等时输出1,否则0,刚好匹配每行1右移的需求。
Excel 365/2021(支持动态数组)
不用拖拽填充,一个公式直接生成整个数组:
在空白单元格(比如A1)输入:=IF(SEQUENCE(4,4,1,1)=TRANSPOSE(SEQUENCE(4)),1,0)
回车后自动生成4行4列的目标数组。
原理:
SEQUENCE(4,4,1,1)生成4行4列的连续数字矩阵(每行都是1-4)TRANSPOSE(SEQUENCE(4))把1-4的垂直序列转成横向,用来对应行号和列号的匹配- 两个矩阵对应位置相等时输出1,其余为0,直接生成目标样式。
内容的提问来源于stack exchange,提问作者toni
相关产品推荐
相关产品推荐

