Function getColumnIndex(columnName As String, worksheetName As String) getColumnIndex = Worksheets(worksheetName).Cells(1, 1).EntireRow.Find(What:=columnName, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=True).Column End Function Function DBLookup(id As String, id_column_name As String, table_name As String, column_name As String) As String 'DBLOOKUP(, , , ) Dim idColumIndex As Long, columnIndex As Long idColumIndex = getColumnIndex(id_column_name, table_name) columnIndex = getColumnIndex(column_name, table_name) Dim idRowNumber As Long idRowNumber = Worksheets(table_name).Cells(1, idColumIndex).EntireColumn.Find(What:=id, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=True).Row DBLookup = Worksheets(table_name).Cells(idRowNumber, columnIndex) End Function