如何通过单元格在二维数组区域的总序号查找其对应位置
适用场景说明
默认计数规则为行优先(从上到下逐行,每行从左到右递增计数),和你示例的计数逻辑一致。
预设参数
- 查询序号存储在单元格
F1,示例中F1=8 - 目标二维区域为
A1:C5(5行3列共15个单元格,匹配你示例的区域大小)
通用公式(全版本Excel/WPS兼容)
=ADDRESS(ROW(目标区域)+CEILING(查询序号/COLUMNS(目标区域),1)-1,COLUMN(目标区域)+MOD(查询序号-1,COLUMNS(目标区域)),4)
示例代入后的公式
=ADDRESS(ROW(A1:C5)+CEILING(F1/COLUMNS(A1:C5),1)-1,COLUMN(A1:C5)+MOD(F1-1,COLUMNS(A1:C5)),4)
计算逻辑说明
- 用
COLUMNS(目标区域)获取单行总列数,示例中为3 - 行号计算:
CEILING(序号/列数,1)得到序号所在的行相对区域首行的偏移,加区域首行号减1得到绝对行号,示例中8/3向上取整为3,行号为1+3-1=3 - 列号计算:
MOD(序号-1,列数)得到序号所在的列相对区域首列的偏移,加区域首列号得到绝对列号,示例中(8-1)对3取余为1,列号为1+1=2 ADDRESS(行号,列号,4)返回不带绝对引用符号的单元格地址,示例中返回B3
列优先计数适配
如果你的计数规则是列优先(从上到下逐列,每列从上到下递增计数),替换为以下公式即可:
=ADDRESS(ROW(目标区域)+MOD(查询序号-1,ROWS(目标区域)),COLUMN(目标区域)+CEILING(查询序号/ROWS(目标区域),1)-1,4)
注意事项
- 如果你的序号从0开始计数,删除公式中
MOD函数内的-1即可 - 所有版本的WPS表格、Excel 2007及以上版本都可以直接使用该公式,无需额外配置
内容的提问来源于stack exchange,提问作者Blastoise Opressor
相关产品推荐
相关产品推荐

