Subtotals

The subtotal function in excel is very powerful. The syntax is SUBTOTAL(function_num, ref1, ref2, ...)
The key for me is that the subtotal function does not include itself in other subtotal functions to avoid double counting.
What is also powerful is different types of function that can be performed.
Function_num Function
1 AVERAGE
2 COUNT
3 COUNTA
4 MAX
5 MIN
6 PRODUCT
7 STDEV
8 STDEVP
9 SUM
10 VAR
11 VARP

The SUBTOTAL function ignores any rows that are not included in the result of a filter, no matter which function_num value you use. That means you can combine the Data Filter facility and the Subtotal functions to summarise data as a result of the filtering.
The SUBTOTAL function is designed for columns of data, or vertical ranges. It is not designed for rows of data, or horizontal ranges. For example, when you subtotal a horizontal range using a function_num of 101 or greater, such as SUBTOTAL(109,B2:G2), hiding a column does not affect the subtotal. But, hiding a row in a subtotal of a vertical range does affect the subtotal.

Delete blank rows

My approach to deleting blank rows would be to use the data filter. However if you like to do things in code (VBA), I have seen this macro to delete rows.
Gary L Brown wrote it
‘/============================/
‘ Sub Purpose: Delect all blank ROWS within the active cell’s
‘ Used Range

Public Sub DeleteBlankRows()
Dim dbMaxRow As Double, dbMinRow As Double, i As Double
Dim dbMaxCol As Double
Dim rng As Range

On Error Resume Next

‘only look in used area of the worksheet where active cell is
Set rng = Selection.Parent.UsedRange

‘calculate area to be searched for blank rows
dbMaxRow = rng.Rows.Count ‘# of rows in used area
dbMinRow = rng.Cells(1, 1).Row ‘1st row in used area
dbMaxCol = rng.EntireColumn.Count ‘# of columns in used area

For i = dbMaxRow To dbMinRow Step -1
If IsError(rng.Cells(1, 1).Offset(i – 1, 0).EntireRow. _
SpecialCells(xlCellTypeBlanks).Count) Then
Else
If rng.Cells(1, 1).Offset(i – 1, 0).EntireRow. _
SpecialCells(xlCellTypeBlanks).Count = dbMaxCol Then
rng.Cells(1, 1).Offset(i – 1, 0).EntireRow.Delete
End If
End If
Next i

Set rng = Nothing

End Sub
‘/============================/

Repeat the Last Action

Actions are generally defined as things you do with menus and title bars, like merging, formatting, running macros, etc, not typing in a cell. Sometimes you may like to repeat the last action easily, without going back through the menus again, there is a shortcut! Press F4