Здравствуйте! Помогите найти формулу! Мне нужно сравнить два столбца. В одном и другом указаны ФИО, но только в первом столбце инициалы сокращены, а во втором нет. Во втором столбце фамилий больше, мне нужно понять, на какие фамилии больше этот столбец.
Заранее спасибо! [admin] Читайте правила форума[/admin]
Здравствуйте! Помогите найти формулу! Мне нужно сравнить два столбца. В одном и другом указаны ФИО, но только в первом столбце инициалы сокращены, а во втором нет. Во втором столбце фамилий больше, мне нужно понять, на какие фамилии больше этот столбец.
Заранее спасибо! [admin] Читайте правила форума[/admin]LadyDark
Вот, посмотрите примерчик. Формула там убийственная и массивная Выделение сделано с помощью УФ, но можно было и автофильтр использовать. Ну и если можно использовать несколько доп.столбцов - то формулы достаточно простые, там оставлены, разбирайтесь. По крайней мере, не хватает контроля количества слов, количества точек...
Вот, посмотрите примерчик. Формула там убийственная и массивная Выделение сделано с помощью УФ, но можно было и автофильтр использовать. Ну и если можно использовать несколько доп.столбцов - то формулы достаточно простые, там оставлены, разбирайтесь. По крайней мере, не хватает контроля количества слов, количества точек...AndreTM
аналогичная по назначению функция пользователя [vba]
Код
Public Function ff(s$, r As Range) As Boolean Dim a, e, x a = r.Value: ff = True With CreateObject("scripting.dictionary") For Each e In a: .Item(Replace(UCase(Application.Trim(e)), ". ", ".")) = 0&: Next s = UCase(Application.Trim(s)): x = Split(s) If UBound(x) <> 2 Then Exit Function If .exists(x(0) & " " & Left(x(1), 1) & "." & Left(x(2), 1) & ".") Then ff = False End With End Function
[/vba]
аналогичная по назначению функция пользователя [vba]
Код
Public Function ff(s$, r As Range) As Boolean Dim a, e, x a = r.Value: ff = True With CreateObject("scripting.dictionary") For Each e In a: .Item(Replace(UCase(Application.Trim(e)), ". ", ".")) = 0&: Next s = UCase(Application.Trim(s)): x = Split(s) If UBound(x) <> 2 Then Exit Function If .exists(x(0) & " " & Left(x(1), 1) & "." & Left(x(2), 1) & ".") Then ff = False End With End Function