=IF(MOD(ROW(),3),OFFSET(sheet1!$A$1,(MOD(ROW()-1,3)>0)*ROUND(ROW()/3,),COLUMN(A1)-1),"")

=IF(MOD(ROW(),3),OFFSET(sheet1!$A$1,(MOD(ROW()-1,3)>0)*ROUND(ROW()/3,),COLUMN(A1)-1),... =IF(MOD(ROW(),3),OFFSET(sheet1!$A$1,(MOD(ROW()-1,3)>0)*ROUND(ROW()/3,),COLUMN(A1)-1),""),请问这个公式怎样解释?谢谢 展开
 我来答
shadow9178
2013-10-31
知道答主
回答量:1
采纳率:0%
帮助的人:1542
展开全部
首先看if函数的逻辑测试(logical_test)是MOD(row(),3),意思是当前所在单元格返回的行号除以3的余数,所以这个逻辑测试值返回的数字只有3个分别是1,2,0,而excel中只有当返回值是0的时候系统判断逻辑测试(logical_test)是false,所以当返回值是0时,这个if函数返回的值是“”(空),意思是只要是行号是3的倍数的此行为空;如果返回值是1,2,则此if函数逻辑测试(logical_test)是true,返回值是嵌套的offset这个函数所引用的参数。而在OFFSET(sheet1!$A$1,(MOD(ROW()-1,3)>0)*ROUND(ROW()/3,),COLUMN(A1)-1)这个里面,比较难以理解的也就是offset函数偏移的行号问题,(MOD(ROW()-1,3)>0)这个其实也是个逻辑判断的函数,如果所在行是1,4,7,10,……(3n+1)行,运算过程是mod(row(3n+1)-1,3)=0,0>0?显然返回值是false,即为0,所以(MOD(ROW()-1,3)>0)*ROUND(ROW()/3,)计算结果是0,那么offset函数的引用值则是OFFSET(sheet1!$A$1,0,0)=sheet1!$A$1结果为sheet1中A1单元格的值;同理如果所在行是2,5,8,……(3n+2)行,运算过程是mod(row(3n+2)-1,3)=1,1>0,所以返回值是true即为1,(MOD(ROW()-1,3)>0)*ROUND(ROW()/3,)的计算结果是1*round(row(3n+2)/3/,)=n,那么offset函数的引用值则是OFFSET(sheet1!$A$1,n,0)=n,即计算结果是sheet1中第A(n+1)个单元格中的值
综上所述,这个函数所表达一共三种情况第一,如果所在行是3n行,返回值是”“(空);第二种情况是所在行为3n+1行,返回值固定为sheet1!中的A1单元格 因为是绝对引用;第三种情况所在行为3n+2行,返回值为sheet1中的第A(n+1)个单元格中的参数
还有值得一提的是在ROUND(ROW()/3,)中,省略了一个”0“,表示取整数
匿名用户
2013-08-25
展开全部
ROW:返回引用的行号,用法:ROW(reference) 如果省略 reference,则假定是对函数 ROW 所在单元格的引用。MOD:返回两数相除的余数。用法:MOD(被除数,除数)MOD(ROW(),3) :3除以行号的余数,返回三个数:1,2,0 如果求余数大于零,执行OFFSET,否则单元格的值为空字符 OFFSET的用法:OFFSET(reference,rows,cols,height,width),如果省略 height 或 width,则假设其高度或宽度与 reference 相同。Rows 相对于偏移量参照系的左上角单元格,上(下)偏移的行数。如果使用 5 作为参数 Rows,则说明目标引用区域的左上角单元格比 reference 低 5 行。行数可为正数(代表在起始引用的下方)或负数(代表在起始引用的上方)。Cols 相对于偏移量参照系的左上角单元格,左(右)偏移的列数。如果使用 5 作为参数 Cols,则说明目标引用区域的左上角的单元格比 reference 靠右 5 列。列数可为正数(代表在起始引用的右边)或负数(代表在起始引用的左边)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式