=IF($Q17=0,0,INDIRECT(ADDRESS(ROW(),COLUMN()-2,"仕入-"&$Q17)))

问题描述:

=IF($Q17=0,0,INDIRECT(ADDRESS(ROW(),COLUMN()-2,"仕入_"&$Q17))) 求助解释前面这个公式.
如果Q17不等于0之后的那一串,特别是-2,这一部份.
1个回答 分类:综合 2014-11-26

问题解答:

我来补答
这里可能只有ADDRESS比较难理解.
ADDRESS的使用格式:ADDRESS(行标,列标,引用方式,[R1C1]格式,工作表名)
行标是指第几行,列标是指第几列.
【引用方式:(有四种) 】
1 或省略 绝对单元格引用 (绝对单元格引用:公式中单元格的精确地址,与包含公式的单元格的位置无关.绝对引用采用的形式为 $A$1.)
2 绝对行号,相对列标
3 相对行号,绝对列标
4 相对单元格引用
【 [R1C1]格式:】
1、TRUE或省略:其返回格式类似:A1,A$1,$A$1与我们平时输入公式时的表示格式
2、FALSE:其返回的格式为:R1C1,R[1]C1,R[1]C[1]
【 工作表名】:可以省略,省略就是不返回工作表名.如果加上工作表名这里要用双引号,也可以是引用单元格(不用引号),
例:
ADDRESS(1,2,1,TRUE,"sheet1")
结果:sheet1!$B$1
Address(4,5) 得到的结果:"$E$4"
Address(4,5,1) 得到的结果:"$E$4"
Address(4,5,2) 得到的结果:"E$4"
Address(4,5,3) 得到的结果:"$E4"
Address(4,5,4) 得到的结果:"E4"
Address(4,5,1,TRUE) 得到的结果:"$E$4"
Address(4,5,1,FALSE) 得到的结果:"R4C5"
Address(4,5,1,TRUE,"Sheet1") 得到的结果:"Sheet1!$E$4"
回到你的公式中:
ADDRESS(ROW(),COLUMN()-2,"仕入_"&$Q17)
row()返回当前行的行号(第几行)
column()返回当前列的列号(第几列) 公式里-2是前当前列的前2列
其中省略了第三和第四个参数,但逗号不能省略.
如果你在单元格G5输入这条公式的话.那么这段公式返回的是”仕入_!$E$5”
其他的都好理解,INDIRECT是将文本转为引用.
希望可以加加分.
 
 
展开全文阅读
剩余:2000
上一页:示意图也请画出
下一页:拜托详细解答