Страницы: 1
RSS
Сортировка списка - глава семьи
 
В примере есть таблица.
Как можно поставить главу семьи внутри семьи первым ?
Слева от главы всегда стоит номер семьи. В моем примере в семьях 6,7,11 глава стоит последним либо в середине... В принципе можно как то оперится на слово глава семьи..
Перемещая главу нужно не забыть и все строку, так как там его все данные...
.
 
В файл не заглядывал, но можно же в Эксе создавать свои правила сортировки.
Я сам - дурнее всякого примера! ...
 
это 2003 офис ?
у меня 2010, где там найти... подскажите
 
1. Параметры эксель - Основные - Изменить списки. (2007 чет показалось что 2010 там же.:()
2. Главная – Сортировка и фильтр (настраеваемая сортировка)-Порядок (настраиваемый список).
Изменено: V - 28.08.2013 10:43:01
 
Дык, ...
Я сам - дурнее всякого примера! ...
 
И все таки не пойму как это осуществить... в смысле отсортировать, чтобы члены семьи не потярялсь
 
Цитата
(2007 чет показалось что 2010 там же
Правда, нехорошо. Для 2007.
Я сам - дурнее всякого примера! ...
 
Геннадий Уваров под одним адресом могут оказаться две и более семьи?
 
Ни в коем случае....
Одна семья, один адрес!!!
Изменено: Геннадий Уваров - 28.08.2013 17:09:14 (дополнение)
 
вариант с двумя доп столбцами.
1. выделяем диапазон A2:O27
2. настраиваемая сортировка
  2.1 сортировать по столбцу "О" по возврастанию
  2.2 "добавить уровень" - затем по  столбцу "N" по возврастанию
3. ОК
 
А какие данные до сортировки в столбцах N и O ?
 
там формулы вписаны их и переносим в нужный файл.
 
Спасибо!

Потом прогоняю улицы формулой создав доп. столбик E:

Код
=ЕСЛИ(D2=D1;"";1+СЧЁТ($E$1:E1))


Копирую столбец E, вставляю в столбец B значением
 
С доп столбцом, условным форматированием и формулой в столбце В:
 
DV, спасибо! отличный вариант!!!
P.S. ЭТО Решение варианта Сортировать список улиц в логически правильной последовательности
Изменено: Геннадий Уваров - 29.08.2013 02:16:56
 
Макрос в модуль листа  ГлаваСемьи
Код
Option Explicit

Sub SortFamily()
Dim i As Long
Dim iLastRow As Long
Dim j As Long
Dim n As Long
    iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    'ставим номер семьи в пустых ячейках столбца B
    With Range("B1:B" & iLastRow)
        .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        .Value = .Value
    End With
    
    For i = 2 To iLastRow
        'ищем количество человек в семье
        n = 1
        Do While Cells(i, 4) = Cells(i + n, 4)
            n = n + 1
        Loop
    For j = 0 To n - 1      'ищем строку с главой семьи
        If InStr(1, Cells(i + j, 3), "глава семьи") <> 0 And j <> 0 Then
            Cells(i + j, 1).EntireRow.Cut
            Rows(i).Insert Shift:=xlDown
        End If
    Next
        i = i + n - 1
    Next
    'проставляем порядковые номера в столбце А
    Cells(2, 1) = 1
    With Range("A3:A" & iLastRow)
        .Formula = "=A2+1"
        .Value = .Value
    End With
End Sub

 
Цитата
Макрос в модуль листа ГлаваСемьи

Сортировка семей не правильная.
У №пп 11: в графе № семьи должно быть 6... у №пп12 - 6 убирается....
№пп 14-15... 7 только у №14пп
№пп21-22 ...11 только у №21пп

см. столбик - должно быть
 
В столбце B, где у вас номер семьи, очистите содержимое
якобы пустых ячеек и попробуйте запустить макрос.
 
во все ячейки столбца В вставляется заголовок № семьи
 
Я хотел сказать, что у вас в якобы пустых ячейках столбца B
что-то есть и макрос их не обрабатывает. Попробуйте выделить в
вашей таблице все пустые ячейки, Excel их не находит. Такое же было и в
ваших предыдущих файлах. Поэтому я и предложил очистить содержимое
этих ячеек.
 
Выделение групп ячеек - пустые...
Странно только эти (см. красным)
Как узнать что в других, или как их выделить ?
 
Я не смотрел,что в этих якобы пустых ячейках,
я просто очистил их содержимое. И тогда они стали
выделяться как пустые.
 
Ок.
Я выделил эти ячейки, удалил содержимое.... выполнил макрос:
номера семей
 
Цитата
номера семей
Макрос проставляет номера всем членам семьи
с одинаковым адресом.
Такой вариант устраивает?
 
Да. Спасибо!
Я после прогоню его формулой
Код
=ЕСЛИ(СЧЁТЕСЛИ($B$1:B2;B2)=1;B2;"")
 
Если номер для каждого члена семьи не нужен, то
попробуйте так
Код
Option Explicit
Sub SortFamily()
Dim i As Long
Dim iLastRow As Long
Dim j As Long
Dim n As Long
    iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To iLastRow
        'ищем количество человек в семье
        n = 1
        Do While Cells(i, 4) = Cells(i + n, 4)
            n = n + 1
        Loop
    For j = 0 To n - 1      'ищем строку с главой семьи
        If InStr(1, Cells(i + j, 3), "глава семьи") <> 0 And j <> 0 Then
            Range(Cells(i + j, 3), Cells(i + j, 13)).Cut
            Cells(i, 3).Insert Shift:=xlDown
        End If
    Next
        i = i + n - 1
    Next
End Sub

 
Цитата
С доп столбцом, условным форматированием и формулой в столбце В:

DV а что исправить чтобы учитывались трехзначные номера домов? Например 101,114
 
Так они и так должны учитываться. Разве нет?
Дайте пример.
 
Простите. В улице ошибка в один символ... считает разные улицы, и ставить выше.
Все нормально! Спасибо!
Страницы: 1
Наверх