Страницы: 1
RSS
Сопоставление телефонных номеров разного формата
 
Помогите пожалуйста, огромные массивы мобильных номеров, которые мне нужно сопоставить из одной таблицы с таблицей другой. Проблема заключается в том, что в одной таблице все красиво все номера начинаются с 7. А во второй таблице в одной ячейке может быть 2 номера, номера начинаются как с 8 так и с 7, есть номера которые без 8 и 7 начинаются, поэтому функция ВПР не помогает. Подскажите можно ли найти мобильные номера в одной таблице чтобы в поиск брал не всю ячейку как в ВПР а допустим только 10 цифр из второй таблицы?
 
Мне нужно просто понять есть ли номер телефона из первого столбца во втором столбце. Отредактировать второй столбец к формату первого не могу, так как сильно большой массив, и это очень трудоемко. Думаю есть какая то хитрая формула, которая может с этим помочь, но я ее не знаю
 
Макросом не надо?
Кому решение нужно - тот пример и рисует.
 
Nikitin1,

Такой вариант в Power Query устроит?
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(Table.TransformColumnTypes(Source, {{"Формат номеров во 2 таблице", type text}}, "ru-RU"), {{"Формат номеров во 2 таблице", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Формат номеров во 2 таблице"),
    #"Extracted Last Characters" = Table.TransformColumns(#"Split Column by Delimiter", {{"Формат номеров во 2 таблице", each "7"&Text.End(Text.From(_, "ru-RU"), 10), type text}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Extracted Last Characters",{{"Формат номеров в 1 таблице", Int64.Type}, {"Формат номеров во 2 таблице", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "test", each [Формат номеров в 1 таблице]=[Формат номеров во 2 таблице])
in
    #"Added Custom"
 
В принципе, если как в примере, и идет сравнение только по данным из одной строки, то можно так попробовать:
Код
=ЕСЛИ(ЕСЛИОШИБКА(ПОИСК(ПРАВСИМВ(A2;10);B2)>0;"");"есть";"нет")
Кому решение нужно - тот пример и рисует.
 
Нет, строки не совпадают
Изменено: Nikitin1 - 28.12.2018 15:50:45
 
Покажите в примере возможные варианты расположения номеров. Возможное написание номеров. Может ли быть, например, что в одной ячейке столбца В содержатся 2 номера, совпадающие с значениями из столбца А?
Кому решение нужно - тот пример и рисует.
 
Для Вашего примера и исходя из этого
Цитата
Nikitin1 написал: Мне нужно просто понять есть ли номер телефона из первого столбца во втором столбце
Код
Function СРАВНИТЬНОМЕР(iNum, iTbl As Range) As Boolean
Dim arr, iVal
arr = iTbl.Value
For Each iVal In arr
    iStr = Split(iVal, Chr(10))
    For I = 0 To UBound(iStr)
        If Right(iNum, 10) = Right(iStr(I), 10) Then
            СРАВНИТЬНОМЕР = True
            Exit Function
        End If
    Next
Next
СРАВНИТЬНОМЕР = False
End Function
Согласие есть продукт при полном непротивлении сторон
 
вроде все варианты и даже лишний :-)
=(COUNTIF(B:B;"*"&RIGHT(A2;10)&"*")+COUNTIF(B:B;"*"&RIGHT(A2;10))+COUNTIF(B:B;RIGHT(A2;10)&"*")+COUNTIF(B:B;RIGHT(A2;10))+COUNTIF(B:B;7&RIGHT(A2;10))+COUNTIF(B:B;8&RIGHT(A2;10)))>0

Или массивно
=SUM(COUNTIF(B:B;CHOOSE({1;2;3;4;5;6};"*"&RIGHT(A2;10)&"*";"*"&RIGHT(A2;10);RIGHT(A2;10)&"*";RIGHT(A2;10);7&RIGHT(A2;10);8&RIGHT(A2;10))))>0


Вариант короче, но на самом деле более сложный для расчетов
=SUM(COUNTIF(B:B;CHOOSE({1;2;3;4;5};"*"&RIGHT(A2;10)&"*";"*"&RIGHT(A2;10);RIGHT(A2;10)&"*";RIGHT(A2;10);{7\8}&RIGHT(A2;10))))>0

Вариант еще короче, Промежуточный
=SUM(COUNTIF(B:B;CHOOSE({1;2;3;4;5;6};"*";"*";"";"";7;8)&RIGHT(A2;10)&CHOOSE({1;2;3;4;5;6};"*";"";"*";"";"";"")))>0
и нормальный
=SUM(COUNTIF(B:B;{"*";"*";"";"";7;8}&RIGHT(A2;10)&{"*";"";"*";"";"";""}))>0
Изменено: БМВ - 28.12.2018 18:33:51
По вопросам из тем форума, личку не читаю.
 
БМВ, да ваш вариант подошел к моей таблице.Спасибо. Напишите пожалуйста в сообщения номер Сбербанка или по телефону, чтобы я перевел вам деньги.
 
Nikitin1, Сегодня у нас предновогодняя распродажа бесплатных решений в этой ветке форума. :-) . Пользуйтесь на здоровье.
По вопросам из тем форума, личку не читаю.
 
Nikitin1,  Посмотрите в сторону вот этой надстройки.Fuzzy loockup
Изменено: Wild.Godlike - 28.12.2018 16:41:57
Страницы: 1
Наверх