3

Я отчаянно пытаюсь заставить моего преуспеть делать то, что я хочу. Я хочу найти строку, которая написана в столбце B1 в моем столбце от A1 до A5. Моя строка в столбце B2 должна быть найдена и в A1:A5.

Пример:

______________
|  A    |  B  |
|_______|_____|
|       |     |
| 13234 | 12  |
|_______|_____|
|       |     |
| 15485 | 13  |
|_______|_____|
|       |     |
| 13234 | 23  |
|_______|_____|
|       |     |
| 78165 | 132 |
|_______|_____|

и теперь вывод в C1-C5 будет:

C1 = no match
C2 = A1,A3
C3 = A1,A3
C4 = A1,A3

Я попытался использовать функцию соответствия следующим образом:

=MATCH (A1, A1:A5, 0)

следуя синтаксису, взятому отсюда:

http://www.techonthenet.com/excel/formulas/match.php

1 ответ1

1

Рассмотрим следующий U сер D efined F помазание (UDF):

Public Function WhereIs(rIn As Range, rList As Range) As String
   Dim s1 As String, r As Range
   Dim s2 As String
   WhereIs = ""
   s1 = rIn.Text

   For Each r In rList
      s2 = r.Text
      If InStr(1, s2, s1) > 0 Then
         If WhereIs = "" Then
            WhereIs = r.Address(0, 0)
         Else
            WhereIs = WhereIs & "," & r.Address(0, 0)
         End If
      End If
   Next r

   If WhereIs = "" Then WhereIs = "no match"
End Function

где первый аргумент - это искомое значение, а второй аргумент - список.

Пользовательские функции (UDF) очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте материал и закройте окно VBE

Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить UDF:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы использовать UDF из Excel:

=WhereIs(B1,A1:A4)

Чтобы узнать больше о макросах в целом, смотрите:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

а подробности о UDF смотрите в:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Макросы должны быть включены, чтобы это работало!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .