Здравствуйте чето никак не получается придумать формулу для создания укороченную таблицу пожалуйста помогите советами и направьте в правильное русло мое скромное мышление по вопросом екселя. Спасибо.
Здравствуйте чето никак не получается придумать формулу для создания укороченную таблицу пожалуйста помогите советами и направьте в правильное русло мое скромное мышление по вопросом екселя. Спасибо.tachtm
Привет спасибо! кое как посмотрел но чето все равно не получается особенно если условия разные, например отсутствуют или вход ил выход и как сказал может быт изменен порядок. есть одна таблица первая (обозначил цыфрой 1) по идее надо из этой таблицы упростит в создать таблицу 2. По формулам получается 3 и 4 таблица вот 4 таблица вродебы нормально получается но есть некоторые ошибки хотел обойти и создал 5 таблицу получился вопше не понятно что вродебы должен сработать но нет. Спасибо!
Привет спасибо! кое как посмотрел но чето все равно не получается особенно если условия разные, например отсутствуют или вход ил выход и как сказал может быт изменен порядок. есть одна таблица первая (обозначил цыфрой 1) по идее надо из этой таблицы упростит в создать таблицу 2. По формулам получается 3 и 4 таблица вот 4 таблица вродебы нормально получается но есть некоторые ошибки хотел обойти и создал 5 таблицу получился вопше не понятно что вродебы должен сработать но нет. Спасибо!tachtm
Sub u_96() 'выключаем обновление экрана Application.ScreenUpdating = False 'очистим старые данные u = Cells(Rows.Count, "h").End(xlUp).Row + 1 Range("g2:l" & u).Clear 'нижняя заполненная строка столбца B a = Cells(Rows.Count, "b").End(xlUp).Row 'цикл от 2-й до нижней строки For c = 2 To a 'ФИО очередной строки d = Range("b" & c).Value 'ищем ФИО в столбце H e = Application.Match(d, Range("h:h"), 0) 'если фио не найдено If IsNumeric(e) = False Then 'определим строку вставки e = Cells(Rows.Count, "h").End(xlUp).Row + 1 'нарисуем сетку Range("g" & e & ":l" & e).Borders.LineStyle = xlContinuous 'запишем ФИО Range("h" & e) = d 'напишем нет Range("i" & e & ":l" & e) = "нет" 'порядковый номер f = Range("g" & e - 1).Value 'значение выше ячейки If c = 2 Then f = 0 'если это 2-я строка Range("g" & e) = f + 1 End If 'Действия g = Range("c" & c).Value 'определим столбец вставки If g = "Пришол" Then j = "i" If g = "Ушол" Then j = "k" 'копируем вставляем время и дверь Range("d" & c & ":e" & c).Copy Range(j & e) Next 'включаем обновление экрана Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub u_96() 'выключаем обновление экрана Application.ScreenUpdating = False 'очистим старые данные u = Cells(Rows.Count, "h").End(xlUp).Row + 1 Range("g2:l" & u).Clear 'нижняя заполненная строка столбца B a = Cells(Rows.Count, "b").End(xlUp).Row 'цикл от 2-й до нижней строки For c = 2 To a 'ФИО очередной строки d = Range("b" & c).Value 'ищем ФИО в столбце H e = Application.Match(d, Range("h:h"), 0) 'если фио не найдено If IsNumeric(e) = False Then 'определим строку вставки e = Cells(Rows.Count, "h").End(xlUp).Row + 1 'нарисуем сетку Range("g" & e & ":l" & e).Borders.LineStyle = xlContinuous 'запишем ФИО Range("h" & e) = d 'напишем нет Range("i" & e & ":l" & e) = "нет" 'порядковый номер f = Range("g" & e - 1).Value 'значение выше ячейки If c = 2 Then f = 0 'если это 2-я строка Range("g" & e) = f + 1 End If 'Действия g = Range("c" & c).Value 'определим столбец вставки If g = "Пришол" Then j = "i" If g = "Ушол" Then j = "k" 'копируем вставляем время и дверь Range("d" & c & ":e" & c).Copy Range(j & e) Next 'включаем обновление экрана Application.ScreenUpdating = True End Sub