考虑以下场景,说明我拥有的数据与我想要的数据。很简单,我有一列,表示字段 1、字段 1 的内容等,更适合格式化为跨列的行对。
我一直在尝试这个TRANSPOSE
功能,但这个功能对我来说很新,我不确定它是否是正确的方向。乍一看,它似乎不能满足我的需求。但我可能是错的……
虽然设置“每隔一行”公式相对简单,但我还必须考虑可能出现重复行和foo
单个行重复的情况bar
,这就是我遇到的问题。我需要的是“下一个未使用的单元格”函数,或者可以向特定单元格添加 X 行或 Y 列的功能。
我可以想象一个可以操纵细胞的公式标签并解决我的问题:
=($A1+2rows)
或者某种=$(A+3)$(4+2)
可以返回单元格的方法D6
。
这样的事可能吗?
答案1
有三个函数可用于您的场景:
抵消
使用=OFFSET($A$1,NumberOfRows,NumberOfCols)
,您基本上可以将对单元格 A1 的引用移到任何方向。
优点:易于使用;还可用于创建多个单元格的范围(例如,在动态名称中),使用第四和第五个参数
缺点:易变,即 Excel 每次都会重新计算公式
间接结合地址
=INDIRECT(ADDRESS(RowNum,ColNum,,,Sheetname))
将允许您访问 Sheetname 中的任何单元格。(如果您省略 sheetname,它将使用当前工作表。
优点:可以处理多个工作表
缺点:Volalite,除非打开,否则无法处理其他工作簿
指数
=INDEX($A:$Z,RowNum,ColNum)
优点:非易失性,即不会减慢大型模型中的重新计算速度;用途广泛(例如与 MATCH 结合使用)
缺点:需要预先指定数组
就我个人而言,我总是尝试使用INDEX
,仅在使用场合INDIRECT
(基本上当工作表名称需要动态时) - 而且几乎从不OFFSET
......