如何在Excel中有条件地减去?

时间:2014-03-22 07:52:07

标签: excel vba excel-vba

我正在尝试执行以下操作,因为我们知道A列和B列是数据而C是结果:

A   B    C  

1   5  (B1-A1)=4  

2   3  (B2-A1)=2  

3   5  (B3-A1)=4  

4   7  (B4-A2)=5

5   4  (B5-A2)=3

6   9  (B6-A2)=7
    .  
    .  
    .  
    .  

如何在Excel或Excel Visual Basic中自动执行此操作?

4 个答案:

答案 0 :(得分:0)

A       B         C
1       4       =B2-A2
1       2       =B3-A3
1       3       =B4-A4
=A2+1   5       =B5-A5
=A3+1   6       =B6-A6
=A4+1   7       =B7-A7
=A5+1   6       =B8-A8
=A6+1   7       =B9-A9
=A7+1   9       =B10-A10

您可以使用 1 启动前3行,然后在第4行A列中添加 1 ;拖动公式。然后,您可以从A列中减去B列。

唯一的缺点是你的列A 不是每一步递增1的序列,而是每四次递增一次的序列。

答案 1 :(得分:0)

Sub sequence()

Dim i As Integer
Dim j As Integer
i = 2
j = 2

For i = 2 To 25 Step 3

Cells(i, 3) = Cells(i, 2) - Cells(j, 1)
Cells(i + 1, 3) = Cells(i + 1, 2) - Cells(j, 1)
Cells(i + 2, 3) = Cells(i + 2, 2) - Cells(j, 1)
j = j + 1
Next i

End Sub

这是解决的VBA代码。

您必须在 for loop 中定义范围,目前它是从第2行设置为第25行

答案 2 :(得分:0)

OFFSET with ROW()是您在任何重复的第n行/列问题上的朋友。

=B1-OFFSET(A$1,ROUNDUP(ROW()/3,0)-1,0),复制到C列。

1   5   4
2   3   2
3   5   4
4   7   5
5   4   2
6   9   7

答案 3 :(得分:-1)

您可以在函数中使用$($ B5- $ A1)并将光标与C列上的单元格拖动到最后写入的元素。