Как искать значения в Excel "таблица"? - PullRequest
0 голосов
/ 09 мая 2019

Если у меня есть, например, эта таблица:

a,6,10,22,35,46
b,2,7,11,23,44,78
c,2,10,15,16,32,66,98
d,7,8,10,11,23,25,30
e,23,24

Теперь я хочу найти вхождения определенного значения и вернуть значение первого столбца каждой соответствующей строки.

Итак 2 дает: b,c23 дает b,d,e.

Как:

2,b,c
23,b,d,e

Возможно ли добиться этого с помощью VLOOPUP- или другой функции?

Спасибо!

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Если вы открыты для решения , вы можете создать свою собственную функцию:

, просто обязательно вставьте ее в новый модуль

Option Explicit

Public Function INCOLUMNS(ByVal value As String, ByVal searchrange As Range) As String

    Dim res As String
    Dim i As Long
    Dim temp As Range

    For i = 1 To searchrange.Columns.Count
        Set temp = Range(Cells(1, i), Cells(searchrange.Rows.Count, i)). _ 
                   Find(value, LookIn:=xlValues, LookAt:=xlWhole)
        If Not temp Is Nothing Then
            If res = "" Then
                res = Split(Cells(1, i).Address, "$")(1)
            Else
                res = res & ", " & Split(Cells(1, i).Address, "$")(1)
            End If
        End If
    Next i

    INCOLUMNS = res
End Function

И тогда вы можете использовать его внутри Worksheet примерно так:

enter image description here

0 голосов
/ 09 мая 2019

Если я правильно понимаю проблему, и что столбец соответствует , без пробелов, я сделал следующую формулу:

=IF(ISNUMBER(SEARCH(",23,",A1)),"23,b,d,e",IF(ISNUMBER(SEARCH(",2,",A1)),"2,b,c","N/A"))

Предполагая, что a,6,10,22,35,46 находится в A1, вы, например, вставили бы его в B1 и перетащите формулу вниз. Это даст вам результаты, которые вы ищете в своем примере.

Ответ, который я получил по этой формуле:

Results

Документация по IF(ISNUMBER(SEARCH формула: https://exceljet.net/formula/if-cell-contains

Надеюсь, это поможет,

-Maykid

...