The below uses a helper cell with INDIRECT +helper cell:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CrntCellAddr As String
Const ColumnH As String = "H5:H15001"
Const TempAddr = "AA1"
CrntCellAddr = Target.Address(False, False)
If Not Intersect(Range(ColumnH), Range(CrntCellAddr)) Is Nothing Then
Range(TempAddr) = "Sheet2!$AP$" & Target.Row
End If
End Sub
=IF(INDIRECT(AA1)="",IF(ROWS($A$2:$A2)>T$1,"",INDEX($G$2:$G$10051,SMALL(IF($K$2:$K$10051=O$1,IF($Y$2:$Y$10051=S$1,ROW($K$2:$K$10051)-ROW($K$2)+1)),ROWS($A$1:$A1)))),"")
Bookmarks