EXCEL MATCH: возвращает 1 совпадение из нескольких критериев в 1 ячейке.

Пример снимка экранаДопустим, столбец 1 имеет идентификаторы, а столбцы 2 и 3 — описания. Несколько значений в столбцах 2 и 3 имеют описания LCD, но я ищу совпадение с LCD, TCD и MCD, и все эти значения находятся в одной и той же ячейке [независимо от того, существуют ли дополнительные значения в этой ячейке]. Как мне вернуть идентификатор (из столбца 1) для одной комбинации LCD + TCD + MCD (из столбцов 2 и 3) в столбце 4 [учитывая, что некоторые из этих значений существуют в других ячейках, но я не хочу, чтобы они возвращены другие значения ячеек, я хочу, чтобы несколько критериев в ОДНОЙ ячейке НЕ соответствовали значениям в нескольких ячейках]?

Спасибо!


person CCho    schedule 28.02.2019    source источник
comment
Поместите пример на один лист Excel и сделайте скриншот. Было бы легче понять и помочь вам   -  person Ricardo Diaz    schedule 28.02.2019
comment
Да спасибо. Я понял, что даже не правильно описал вопрос, пока не нарисовал фиктивный пример Excel. Извините, первый раз спрашиваю здесь. Я внес изменения и приложил скриншот. Дайте мне знать, если я должен уточнить дальше.   -  person CCho    schedule 28.02.2019
comment
Также ознакомьтесь с stackoverflow.com/help/how-to-ask.   -  person Yeti    schedule 28.02.2019


Ответы (2)


Предположим, что у вас есть данные в виде указанной таблицы

В столбце описания для идентификаторов A и B у нас есть LCD, MCD и TCD, и вам нужны идентификаторы A и B в столбце 3 и нет для строки номер 4, потому что у нас есть только TCD. Если это так, вы можете использовать приведенную ниже формулу, иначе предоставьте образец ваших данных:

=IF(AND(ISNUMBER(SEARCH("LCD",B2)),ISNUMBER(SEARCH("MCD",B2)),ISNUMBER(SEARCH("TCD",B2))),A2,"No")
person Sapan Gupta    schedule 28.02.2019

Если вы заинтересованы в использовании VBA, попробуйте:

Option Explicit

Sub Sample()

    Dim Lastrow As Long, i As Long, y As Long, Times As Long
    Dim arr As Variant

    With ThisWorkbook.Worksheets("Sheet1")

        Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 3 To Lastrow

            arr = Split(.Range("B" & i), " ")

            Times = 0

             For y = LBound(arr, 1) To UBound(arr, 1)

                If InStr(1, .Range("C" & i).Value, arr(y)) > 0 Then

                    Times = Times + 1

                End If

            Next y

            If Times = UBound(arr) + 1 Then
                .Range("D" & i).Value = .Range("A" & i).Value
            End If

        Next i

    End With

End Sub
person Error 1004    schedule 28.02.2019