2015-04-22 87 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」並避免了循環的需要。

相關問題