Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сортировка разных диапазонов чисел из одного столбца - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сортировка разных диапазонов чисел из одного столбца
bratello Дата: Вторник, 13.12.2016, 13:02 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, уважаемые участники.
Не нашел ничего поиском, может быть не так задавал вопрос.
Суть проблемы следующая - есть база клиентов компании с номерами мобильных тел контрагентов. Требуется отсортировать мобильные номера на принадлежность к региону согласно списка Россвязи https://www.rossvyaz.ru/activity/num_resurs/registerNum/. Номера идут одним столбцом
Простая сортировка, понятно, не поможет в данном случае. С макросами не дружу. Подскажите алгоритм решения такой проблемы. Спасибо


Сообщение отредактировал bratello - Вторник, 13.12.2016, 15:14
 
Ответить
СообщениеЗдравствуйте, уважаемые участники.
Не нашел ничего поиском, может быть не так задавал вопрос.
Суть проблемы следующая - есть база клиентов компании с номерами мобильных тел контрагентов. Требуется отсортировать мобильные номера на принадлежность к региону согласно списка Россвязи https://www.rossvyaz.ru/activity/num_resurs/registerNum/. Номера идут одним столбцом
Простая сортировка, понятно, не поможет в данном случае. С макросами не дружу. Подскажите алгоритм решения такой проблемы. Спасибо

Автор - bratello
Дата добавления - 13.12.2016 в 13:02
dim34rus Дата: Вторник, 13.12.2016, 13:44 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 10 ±
Замечаний: 0% ±

Excel 2007 - 2013
Образец таблицы не помешал бы. А так же признаки регионов.


Извращение - это писать формулы в Word'овских таблицах.
ЯД 410014340958327
 
Ответить
СообщениеОбразец таблицы не помешал бы. А так же признаки регионов.

Автор - dim34rus
Дата добавления - 13.12.2016 в 13:44
bratello Дата: Вторник, 13.12.2016, 15:13 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
dim34rus,
Вот пример. Справа часть таблицы с сайта Россвязи (прошу прощения, постом выше ошибся - не Росреестр, а Россвязь).

Получается слева единый список всех номеров, а справа диапазон, к примеру, для Москвы и МО - 917 5000000 5999999 1000000шт Мобильные ТелеСистемы Москва и Московская область. И больше в коде 917 московских номеров нет, остальные по регионам все.

Диапазонов номеров всего ~4500. Как это сортировать?
К сообщению приложен файл: 7162476.xlsx (11.9 Kb)


Сообщение отредактировал bratello - Вторник, 13.12.2016, 15:13
 
Ответить
Сообщениеdim34rus,
Вот пример. Справа часть таблицы с сайта Россвязи (прошу прощения, постом выше ошибся - не Росреестр, а Россвязь).

Получается слева единый список всех номеров, а справа диапазон, к примеру, для Москвы и МО - 917 5000000 5999999 1000000шт Мобильные ТелеСистемы Москва и Московская область. И больше в коде 917 московских номеров нет, остальные по регионам все.

Диапазонов номеров всего ~4500. Как это сортировать?

Автор - bratello
Дата добавления - 13.12.2016 в 15:13
bratello Дата: Вторник, 13.12.2016, 15:40 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я вот тут наткнулся на решение похожей проблемы. С той разницей, что автор темы в астериске это делал https://habrahabr.ru/post/144563/ Но в екселе как-то, видимо, по другому это делается...
 
Ответить
СообщениеЯ вот тут наткнулся на решение похожей проблемы. С той разницей, что автор темы в астериске это делал https://habrahabr.ru/post/144563/ Но в екселе как-то, видимо, по другому это делается...

Автор - bratello
Дата добавления - 13.12.2016 в 15:40
buchlotnik Дата: Вторник, 13.12.2016, 16:12 | Сообщение № 5
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
так может регион к номеру формулой подтянуть? а потом и сортировать можно
К сообщению приложен файл: 2617963.xlsx (16.5 Kb)
 
Ответить
Сообщениетак может регион к номеру формулой подтянуть? а потом и сортировать можно

Автор - buchlotnik
Дата добавления - 13.12.2016 в 16:12
dim34rus Дата: Вторник, 13.12.2016, 17:15 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 10 ±
Замечаний: 0% ±

Excel 2007 - 2013
макрос.
[vba]
Код
Sub СОРТИРОВКА_НОМЕРОВ()
   i = 1
   While ActiveSheet.Cells(i, 1).Value <> ""
     k = 1
     While (Not ((ActiveSheet.Cells(i, 1).Value >= 70000000000# + ActiveSheet.Cells(k, 3).Value * 10000000 + ActiveSheet.Cells(k, 4).Value) And (ActiveSheet.Cells(i, 1).Value <= 70000000000# + ActiveSheet.Cells(k, 3).Value * 10000000 + ActiveSheet.Cells(k, 5).Value)) And ActiveSheet.Cells(k, 3).Value <> "")
       k = k + 1
     Wend
     ActiveSheet.Cells(i, 2).Value = ActiveSheet.Cells(k, 8).Value
     i = i + 1
   Wend

    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("B1:B" & Format(i)) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range("A1:B" & Format(i))
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
        
    ActiveSheet.Range("A1:B1").AutoFilter
End Sub
[/vba]

Проблема макроса в том, что он всегда будет хотеть таблицу регионов именно в таком виде (количество строк не важно)
Время обработки макросом 14 тыс номеров ~8-10 сек
К сообщению приложен файл: 716.xlsm (80.9 Kb)


Извращение - это писать формулы в Word'овских таблицах.
ЯД 410014340958327
 
Ответить
Сообщениемакрос.
[vba]
Код
Sub СОРТИРОВКА_НОМЕРОВ()
   i = 1
   While ActiveSheet.Cells(i, 1).Value <> ""
     k = 1
     While (Not ((ActiveSheet.Cells(i, 1).Value >= 70000000000# + ActiveSheet.Cells(k, 3).Value * 10000000 + ActiveSheet.Cells(k, 4).Value) And (ActiveSheet.Cells(i, 1).Value <= 70000000000# + ActiveSheet.Cells(k, 3).Value * 10000000 + ActiveSheet.Cells(k, 5).Value)) And ActiveSheet.Cells(k, 3).Value <> "")
       k = k + 1
     Wend
     ActiveSheet.Cells(i, 2).Value = ActiveSheet.Cells(k, 8).Value
     i = i + 1
   Wend

    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("B1:B" & Format(i)) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range("A1:B" & Format(i))
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
        
    ActiveSheet.Range("A1:B1").AutoFilter
End Sub
[/vba]

Проблема макроса в том, что он всегда будет хотеть таблицу регионов именно в таком виде (количество строк не важно)
Время обработки макросом 14 тыс номеров ~8-10 сек

Автор - dim34rus
Дата добавления - 13.12.2016 в 17:15
sboy Дата: Вторник, 13.12.2016, 17:50 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Формула массива. Подтягивает регион по номеру телефона
Код
=ИНДЕКС($H$2:$H$46;ПОИСКПОЗ(1;(--ПСТР(A2;2;3)=$C$2:$C$46)/(--ПСТР(A2;5;7)<=$E$2:$E$46)/(--ПСТР(A2;5;7)>=$D$2:$D$46);0))
К сообщению приложен файл: 7392950.xlsx (16.3 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Формула массива. Подтягивает регион по номеру телефона
Код
=ИНДЕКС($H$2:$H$46;ПОИСКПОЗ(1;(--ПСТР(A2;2;3)=$C$2:$C$46)/(--ПСТР(A2;5;7)<=$E$2:$E$46)/(--ПСТР(A2;5;7)>=$D$2:$D$46);0))

Автор - sboy
Дата добавления - 13.12.2016 в 17:50
bratello Дата: Среда, 14.12.2016, 09:54 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
так может регион к номеру формулой подтянуть? а потом и сортировать можно


А можете пояснить что именно делает данная формула? Чтобы понять схему ее работы
 
Ответить
Сообщение
так может регион к номеру формулой подтянуть? а потом и сортировать можно


А можете пояснить что именно делает данная формула? Чтобы понять схему ее работы

Автор - bratello
Дата добавления - 14.12.2016 в 09:54
bratello Дата: Среда, 14.12.2016, 09:57 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Формула массива. Подтягивает регион по номеру телефона


А это другая формула, но делает тоже самое вроде....

Как вы это делаете? )))
 
Ответить
Сообщение
Добрый день.
Формула массива. Подтягивает регион по номеру телефона


А это другая формула, но делает тоже самое вроде....

Как вы это делаете? )))

Автор - bratello
Дата добавления - 14.12.2016 в 09:57
bratello Дата: Среда, 14.12.2016, 10:26 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо всем! Все работает! Очень удобно!
Сделал по варианту buchlotnikа, формула короче получилась
 
Ответить
СообщениеСпасибо всем! Все работает! Очень удобно!
Сделал по варианту buchlotnikа, формула короче получилась

Автор - bratello
Дата добавления - 14.12.2016 в 10:26
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!