2015-04-22 97 views
2

我使用数据库结果填充表单。我不知道结果会有多少行。我想有一个可变数量的行,有类似的表:如何检查单元格是否为Excel列中的最后一个

IF(this is the last row?, sum of previous cells, some value) 

是否有确定该行是最后一个公式的公式?我正在寻找一个Excel公式而不是VBA代码。也许类似于我不知道的LOOKUP或INDEX或OFFSET。

+0

提供了一个示例请和预期结果 – AHC

+0

在第一张(S1)我有A1-An填充值。在第二张纸(S2)中,我有B1-Bn填充值。在第三张表中,我希望列A有: IF(n?,SUM(A1:An),'S1'!Ax *'S2'!Bx)。我需要Excel公式来确定某个单元格是否是该列中的最后一个单元格,以便我可以决定使用哪个公式。 – Anya

+0

你的例子不完整 – AHC

回答

0

如果你想要在单元格中输入公式,请选择Ctrl + Down(根据需要重复并不是所有单元格都填充),Down应该可以工作,但是解决方法是将总计在其他地方,如=Sum(A:A)。或者,如果在最近的Excel版本中,并且对整个列进行求和,则公式将处于避免循环引用的状态,如=SUM(A2:A1048576)

1

你可以试试这个UDF:

Function IsLastCellInRow(myCell As Range) As Boolean 
    If IsEmpty(myCell) Then Exit Function 

    If myCell.End(xlDown).Row = myCell.EntireColumn.Rows.Count Then 
     IsLastCellInRow = True 
    End If 
End Function 

功能基本检查是否存在给定的细胞低于非空单元格,并返回TRUE的FALSE。

然后,您可以使用此UDF这样的:

=IF(IsLastCellInRow(Sheet1!A1),SUM(Sheet1!A:A), "Whatever") 
1

这将测试是否细胞是空的,一旦它发现这是不言而喻的空单元格,总结以前的单元格的值,并将其显示在空单元格

Sub Test2() 

    Dim i As Integer 
    Dim j As Integer 
i = 1 

Do While Cells(i, 1).Value <> "" 
    j = j + Cells(i, 1).Value 
    i = i + 1 
Loop 
Cells(i, 1).Select 
Cells(i, 1).Value = j 



    End Sub 
1

该子项通过在底部添加总和来合计列。

Sub ColumnAutoTotal() 

' 
Dim iStartRow As Integer 
Dim iEndRow As Integer 

Range("A2").Select ' This cell is the first cell in the column that you want to add. The TOP Cell 
iStartRow = ActiveCell.Row 
Selection.End(xlDown).Select 
iEndRow = ActiveCell.Row 
Cells(iEndRow + 1, ActiveCell.Column).Select 

'Set the total formula 
ActiveCell.FormulaR1C1 = "=SUM(R[-" & ActiveCell.Row - iStartRow & "]C:R[-1]C)" 

End Sub 

你可以把它写成函数并传递单元格“A2”或其他单元格。这使用内置的“Selection.End”并避免了循环的需要。

相关问题