EXCEL:用相对坐标计算合计

举个例子,我需要在:


A1计算B1到D1的合计。

A2计算B2到D2的合计。

A3计算B3到D3的合计。

......


虽然可以在A1里写=SUM(B1:D1)然后往下拉,由EXCEL自动生成每一行的公式。

但是这样的作法在使用NPOI编程的时候无法实现。


在用NPOI复制ROW到下一行的时候,公式依然保留了=SUM(B1:D1),导致计算的结果并不正确。

为了迁就这一点,需要在EXCEL里写公式的时候就写成万能格式。


有如下两种方法:


1、=SUM(INDIRECT(ADDRESS(ROW(),COLUMN()+1)&":"&ADDRESS(ROW(),COLUMN()+3)))

含义:

ADDRESS(ROW(),COLUMN()+1) 取同一行的,在右边一格的单元格

ADDRESS(ROW(),COLUMN()+3) 取同一行的,在右边三格的单元格

INDIRECT()取得这个地址的引用,然后SUM合计。


2、=SUM(OFFSET($A$1,ROW()-1,1,1,3))

含义:

取得偏移的坐标范围,从A1开始,往下移动ROW()-1行,往右移动1列,高度1,宽度3。


虽然这样暂时能够解决了,但对于写公式来说非常不方便。还是希望NPOI的复制单元格功能也能够实现自动变化公式里的坐标。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值