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

Вход

Регистрация

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

 

= Мир MS Excel/Иерархическая таблица в линейную - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Иерархическая таблица в линейную (Макросы/Sub)
Иерархическая таблица в линейную
Folly Дата: Вторник, 23.02.2016, 13:41 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго времени суток.
Помогите пожалуйста привести таблицу к линейному виду, у меня не получается, только недавно начала изучать VBA.
Лист 1 - исходные данные, лист 2 - результат.
Благодарю за помощь))
К сообщению приложен файл: 4641735.xlsm(17Kb)


Сообщение отредактировал Folly - Вторник, 23.02.2016, 13:49
 
Ответить
СообщениеДоброго времени суток.
Помогите пожалуйста привести таблицу к линейному виду, у меня не получается, только недавно начала изучать VBA.
Лист 1 - исходные данные, лист 2 - результат.
Благодарю за помощь))

Автор - Folly
Дата добавления - 23.02.2016 в 13:41
МВТ Дата: Вторник, 23.02.2016, 14:19 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 136 ±
Замечаний: 0% ±

Excel 2007
Без всяких макросов. В столбец А вводите и протягиваете такую формулу
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("Кредит";RC[1]));"удалить";ЕСЛИ(ЕОШИБКА(ПОИСК("Кредит";R[-1]C[1]));R[-1]C[1];R[-1]C))
. Выделяете полученные данные и при помощи специальной вставки заменяете формулы на значения. Фильтруете по столбцу А по значению "Удалить" и удаляете. Снимаете фильтр
 
Ответить
СообщениеБез всяких макросов. В столбец А вводите и протягиваете такую формулу
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("Кредит";RC[1]));"удалить";ЕСЛИ(ЕОШИБКА(ПОИСК("Кредит";R[-1]C[1]));R[-1]C[1];R[-1]C))
. Выделяете полученные данные и при помощи специальной вставки заменяете формулы на значения. Фильтруете по столбцу А по значению "Удалить" и удаляете. Снимаете фильтр

Автор - МВТ
Дата добавления - 23.02.2016 в 14:19
Folly Дата: Вторник, 23.02.2016, 14:56 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо, но только проблема в том, что второй столбец не всегда начинается со слова "кредит", там может быть всё, что угодно. Разница в отступе. Первый столбец формируется по отступу "0", второй столбец по отступу "1".
Подскажите пожалуйста как такое реализовать?
 
Ответить
СообщениеСпасибо, но только проблема в том, что второй столбец не всегда начинается со слова "кредит", там может быть всё, что угодно. Разница в отступе. Первый столбец формируется по отступу "0", второй столбец по отступу "1".
Подскажите пожалуйста как такое реализовать?

Автор - Folly
Дата добавления - 23.02.2016 в 14:56
RAN Дата: Вторник, 23.02.2016, 15:24 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub Мяу()
    Dim lr&, i&, r As Range
        Application.ScreenUpdating = False
    lr = Cells(Rows.Count, 2).End(xlUp).Row
    For i = 3 To lr
        If Cells(i, 2).IndentLevel = 0 Then Cells(i, 1).Value = Cells(i, 2).Value
    Next
    Set r = Range(Cells(3, 1), Cells(lr, 1)).SpecialCells(xlCellTypeBlanks)
    r.FormulaR1C1 = "=R[-1]C"
    Set r = Range(Cells(3, 1), Cells(lr, 1))
    r.Value = r.Value
    For i = lr To 3 Step -1
        If Cells(i, 2).IndentLevel = 0 Then Rows(i).Delete
    Next
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Мяу()
    Dim lr&, i&, r As Range
        Application.ScreenUpdating = False
    lr = Cells(Rows.Count, 2).End(xlUp).Row
    For i = 3 To lr
        If Cells(i, 2).IndentLevel = 0 Then Cells(i, 1).Value = Cells(i, 2).Value
    Next
    Set r = Range(Cells(3, 1), Cells(lr, 1)).SpecialCells(xlCellTypeBlanks)
    r.FormulaR1C1 = "=R[-1]C"
    Set r = Range(Cells(3, 1), Cells(lr, 1))
    r.Value = r.Value
    For i = lr To 3 Step -1
        If Cells(i, 2).IndentLevel = 0 Then Rows(i).Delete
    Next
End Sub
[/vba]

Автор - RAN
Дата добавления - 23.02.2016 в 15:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Иерархическая таблица в линейную (Макросы/Sub)
Страница 1 из 11
Поиск:

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