Подскажите пожалуйста, как можно заставить функцию ВПР игнорировать буквенные обозначения кодов в столбце «код» На этом скрине сам вопрос.
Формула такая:
Код
=ВПР(A40;'наименован кодов'!A:B;2)
где: А40 – ячейка с кодом; наименован кодов – наименование листа, в котором таблица с кодами и их названиями; А:В – диапазон – в столбце «А» – коды, в столбце «В» их название; 2 – второй столбец с названиями кодов.
Как сделать, чтобы эта функция ВПР игнорировала буквенный текст в названии кодов, а руководствовалась бы только четырьмя ЦИФРАМИ?
Текстовые добавления будут разные и много – это сейчас только одно добавление «СФ»… так как начало года еще.
Варианты: 1. Существует ДРУГАЯ формула ВПР; 2. Если нет такой формулы, то возможно ли кодом VBA что-либо сделать?
Спасибо.
Уважаемые знатоки!
Подскажите пожалуйста, как можно заставить функцию ВПР игнорировать буквенные обозначения кодов в столбце «код» На этом скрине сам вопрос.
Формула такая:
Код
=ВПР(A40;'наименован кодов'!A:B;2)
где: А40 – ячейка с кодом; наименован кодов – наименование листа, в котором таблица с кодами и их названиями; А:В – диапазон – в столбце «А» – коды, в столбце «В» их название; 2 – второй столбец с названиями кодов.
Как сделать, чтобы эта функция ВПР игнорировала буквенный текст в названии кодов, а руководствовалась бы только четырьмя ЦИФРАМИ?
Текстовые добавления будут разные и много – это сейчас только одно добавление «СФ»… так как начало года еще.
Варианты: 1. Существует ДРУГАЯ формула ВПР; 2. Если нет такой формулы, то возможно ли кодом VBA что-либо сделать?
Не знаю, правильно ли я понял суть задачи, но сделал следующее. данная функция ВПР2 работает, как формула на листах и отбрасывает все текстовые символы из таблицы для поиска при поиске числовых значений: [vba]
Код
Function ВПР2(Table As Variant, SearchColumnNum As Long, SearchValue As Variant, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long, temp As Variant, st As Long Select Case TypeName(Table) Case "Range" For i = 1 To Table.Rows.Count st = 0 For j = 1 To Len(Table.Cells(i, SearchColumnNum)) temp = Mid(Table.Cells(i, SearchColumnNum), j, 1) If IsNumeric(temp) Then st = st & temp End If Next j If Val(st) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then ВПР2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" For i = 1 To UBound(Table) If Val(st) = SearchValue Then iCount = iCount + 1 If iCount = N Then ВПР2 = Table(i, ResultColumnNum) Exit For End If Next i End Select End Function
извините, я тоже поправился... я еще не до конца тут освоился)
Не знаю, правильно ли я понял суть задачи, но сделал следующее. данная функция ВПР2 работает, как формула на листах и отбрасывает все текстовые символы из таблицы для поиска при поиске числовых значений: [vba]
Код
Function ВПР2(Table As Variant, SearchColumnNum As Long, SearchValue As Variant, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long, temp As Variant, st As Long Select Case TypeName(Table) Case "Range" For i = 1 To Table.Rows.Count st = 0 For j = 1 To Len(Table.Cells(i, SearchColumnNum)) temp = Mid(Table.Cells(i, SearchColumnNum), j, 1) If IsNumeric(temp) Then st = st & temp End If Next j If Val(st) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then ВПР2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" For i = 1 To UBound(Table) If Val(st) = SearchValue Then iCount = iCount + 1 If iCount = N Then ВПР2 = Table(i, ResultColumnNum) Exit For End If Next i End Select End Function
Поменяете ник на fan-fx, это резко меняет привычки :-)
я раньше и был fan-fx, 3-х этажные формулы составлял,но потом мне даже этого стало не хватать под мои задачи и я ушел с головой в vba, а fx стал немного подзабывать... но я учту)))
Поменяете ник на fan-fx, это резко меняет привычки :-)
я раньше и был fan-fx, 3-х этажные формулы составлял,но потом мне даже этого стало не хватать под мои задачи и я ушел с головой в vba, а fx стал немного подзабывать... но я учту)))fan-vba