Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2015, 12:39   #1
Кардаган
Форумчанин
 
Регистрация: 07.07.2015
Сообщений: 121
По умолчанию Сортировка массива по отдельному столбцу

И опять здравствуйте.
Помогите, пожалуйста, отсортировать массив.
Итак в приложенном файле имеем столбец B и столбцы D; E; F. Нужно отсортировать столбцы D; E; F по столбцу D в соответствии со столбцом B. То есть нужно отсортировать столбцы D; E; F так, чтобы столбец D имел такой же порядок, как и столбец B. Столбец B: не изменять данные, не сортировать его.
Помогите, пожалуйста.
Вложения
Тип файла: xlsx Сортировка.xlsx (12.4 Кб, 15 просмотров)
Кардаган вне форума Ответить с цитированием
Старый 23.07.2015, 13:10   #2
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Сами до конца понимате что нужно сделать? Столбец В:В в примере меньше по размеру других столбцов - что делать с дублирующими данными?
Обычный ВПР Вам не поможет?
27102014 вне форума Ответить с цитированием
Старый 23.07.2015, 13:23   #3
riniks17
Форумчанин
 
Регистрация: 15.12.2011
Сообщений: 355
По умолчанию

Цитата:
Сообщение от 27102014 Посмотреть сообщение
Сами до конца понимате что нужно сделать? Столбец В:В в примере меньше по размеру других столбцов - что делать с дублирующими данными?
Обычный ВПР Вам не поможет?
Тем более, что где ячейки поля "В"заполнены, остальные столбцы именно так, как указывает ТС и отсортированы. Проверил ВПР
riniks17 вне форума Ответить с цитированием
Старый 23.07.2015, 13:40   #4
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Кардаган , только для Вас сортировка данных столбцов D,E,F по столбцу В из имеющихся данных
Код:
Sub Кардаган()

i = 1

For y = 1 To 69

    If Cells(i, 2).Value = Cells(i, 4).Value Then
        Cells(i, 10).Value = Cells(i, 4).Value
        Cells(i, 11).Value = Cells(i, 5).Value
        Cells(i, 12).Value = Cells(i, 6).Value
        Cells(i, 13).Value = i ' номер строки из которой взяты данные
    Else:
    x = 1
        For Z = 1 To 100
            If Cells(i, 2).Value = Cells(x, 4).Value Then
                Cells(i, 10).Value = Cells(x, 4).Value
                Cells(i, 11).Value = Cells(x, 5).Value
                Cells(i, 12).Value = Cells(x, 6).Value
                Cells(i, 13).Value = x ' номер строки из которой взяты данные
             End If
         x = x + 1
    Next Z
End If

i = i + 1
Next y


End Sub
27102014 вне форума Ответить с цитированием
Старый 23.07.2015, 14:26   #5
Кардаган
Форумчанин
 
Регистрация: 07.07.2015
Сообщений: 121
По умолчанию

Цитата:
Сообщение от 27102014 Посмотреть сообщение
Сами до конца понимате что нужно сделать? Столбец В:В в примере меньше по размеру других столбцов - что делать с дублирующими данными?
Обычный ВПР Вам не поможет?
Данные в столбцах B и D идут в разном порядке. Дублей нету. Если будут - то допсортировка (у меня есть ещё столбцы рядом с В - т.е этот тоже массив). Да столбец В меньше D. Но мне и надо понять, почему, что совпадает. Если цифры в B нету, а в D есть или в D нету, а в В есть то по идее должно быть расхождение по строке (для примера цифра 19380 в столбце В стоит на 2 строке, а в D в случае отсутствия цифры в первой строке - цифра 19380 будет в первой строке (отсортируйте "тупо" от А до Я - так и будет).
Кардаган вне форума Ответить с цитированием
Старый 23.07.2015, 14:26   #6
Кардаган
Форумчанин
 
Регистрация: 07.07.2015
Сообщений: 121
По умолчанию

Цитата:
Сообщение от riniks17 Посмотреть сообщение
Тем более, что где ячейки поля "В"заполнены, остальные столбцы именно так, как указывает ТС и отсортированы. Проверил ВПР
нет не так. Впр подтянет, но не то - см цифры. Их порядок разный в столбцах B и D.
Кардаган вне форума Ответить с цитированием
Старый 23.07.2015, 14:28   #7
Кардаган
Форумчанин
 
Регистрация: 07.07.2015
Сообщений: 121
По умолчанию

Цитата:
Сообщение от 27102014 Посмотреть сообщение
Обычный ВПР Вам не поможет?
Обычный ВПР отсортирует (подтянет) только столбец D, а остальные (E и F) не затронет - так что мимо.
Кардаган вне форума Ответить с цитированием
Старый 23.07.2015, 14:41   #8
Кардаган
Форумчанин
 
Регистрация: 07.07.2015
Сообщений: 121
По умолчанию

Проверил код - в принципе правильно но:
1. Вставляет на лист копию столбцов D, E, F, но только со значениями имеющимися в столбце В, а мне надо тупо отсортировать столбец D по столбцу В. Значения, которых нет в столбце В должны идти под всеми остальными.
2. Добавляет справа ещё один столбец с какими-то цифрами - что это?
Кардаган вне форума Ответить с цитированием
Старый 23.07.2015, 15:02   #9
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Цитата:
Сообщение от Кардаган Посмотреть сообщение
Проверил код - в принципе правильно но:
1. Вставляет на лист копию столбцов D, E, F, но только со значениями имеющимися в столбце В, а мне надо тупо отсортировать столбец D по столбцу В. Значения, которых нет в столбце В должны идти под всеми остальными.
2. Добавляет справа ещё один столбец с какими-то цифрами - что это?
Вы несколько дополнили условия задачи, сразу вопрос - а если в столбце В есть значения, которых нет в других?


по коду:
Отсортировать исходные данные прямо в этих столбцах D, E, F - если сможете, научите? Сортируете в других, а исходные D, E, F можно потом удалить
Добавляет справа ещё один столбец с какими-то цифрами - номер строки, из которой взяты данные в столбцах D, E, F
27102014 вне форума Ответить с цитированием
Старый 23.07.2015, 15:06   #10
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Цитата:
Сообщение от Кардаган Посмотреть сообщение
Обычный ВПР отсортирует (подтянет) только столбец D, а остальные (E и F) не затронет - так что мимо.
очень простой фокус
G1 = СЦЕПИТЬ (D1;E1;F1)

C1 = ВПР(B1;D:G;4;0)

Далее столбец С - разделить по столбцам
27102014 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка строк по столбцу на НЕ-текущем листе who Microsoft Office Excel 6 15.09.2014 14:36
Сортировка ListView по выбранному столбцу lena pryadun C++ Builder 2 28.05.2012 17:53
Сортировка строк по столбцу Ilya_L Microsoft Office Excel 2 19.06.2010 06:36
Сортировка массива по столбцу Iv@n Общие вопросы .NET 2 02.03.2010 13:55
Сортировка по столбцу А? не могу разобраться Sirius2w Microsoft Office Excel 10 10.12.2009 13:56