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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление строк из структуры - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Удаление строк из структуры
strimax Дата: Понедельник, 09.11.2015, 11:23 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Добрый день, Уважаемые специалисты! Я не могу прикрепить тут файл своей таблицы, т.к.он весит 2,5 мегабайтов, могу выслать на почту. Попробую описать проблему: таблица состоит из 9 столбцов с шапками, причём во втором столбце слева таблицы есть очень много объединённых ячеек по 2 штуки. В третьем столбце есть ячейки со значением БУ и Кол., причём они расположены поочерёдно друг за другом (приложил фрагмент файла, но структура удалена). Задача вроде бы и простая, но что-то мешает. Суть задачи: надо удалить те строки полностью, где в столбце №3 есть ячейки со значением БУ. Проблему я решал, но ничего не получилось. Сперва я убрал структуру, потом решил убрать в столбце №2 объединённые ячейки, разъединив их и на этом этапе и споткнулся. Может быть кто-то подскажет поэтапно, как справиться с задачей? Макрос тут скорее всего изза объединённых ячеек не поможет.

Спасибо заранее!
К сообщению приложен файл: 4326333.xlsx (10.1 Kb)
 
Ответить
СообщениеДобрый день, Уважаемые специалисты! Я не могу прикрепить тут файл своей таблицы, т.к.он весит 2,5 мегабайтов, могу выслать на почту. Попробую описать проблему: таблица состоит из 9 столбцов с шапками, причём во втором столбце слева таблицы есть очень много объединённых ячеек по 2 штуки. В третьем столбце есть ячейки со значением БУ и Кол., причём они расположены поочерёдно друг за другом (приложил фрагмент файла, но структура удалена). Задача вроде бы и простая, но что-то мешает. Суть задачи: надо удалить те строки полностью, где в столбце №3 есть ячейки со значением БУ. Проблему я решал, но ничего не получилось. Сперва я убрал структуру, потом решил убрать в столбце №2 объединённые ячейки, разъединив их и на этом этапе и споткнулся. Может быть кто-то подскажет поэтапно, как справиться с задачей? Макрос тут скорее всего изза объединённых ячеек не поможет.

Спасибо заранее!

Автор - strimax
Дата добавления - 09.11.2015 в 11:23
pabchek Дата: Понедельник, 09.11.2015, 11:39 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
У меня вот так получилось
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$J$28;1/НАИБОЛЬШИЙ(ЕСЛИОШИБКА(1/(СТРОКА($B$1:$B$28)*($C$1:$C$28<>"БУ"));0);СТРОКА(A1));СТОЛБЕЦ(A1));"")

во втором столбце
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$J$28;1/НАИБОЛЬШИЙ(ЕСЛИОШИБКА(1/(СТРОКА($B$1:$B$28)*($C$1:$C$28<>"БУ"));0);СТРОКА(B1))-1;СТОЛБЕЦ(B1));"")
К сообщению приложен файл: 2289468.xlsb (15.5 Kb)


"Учиться, учиться и еще раз учиться!"
WM: R399923528092


Сообщение отредактировал pabchek - Понедельник, 09.11.2015, 11:42
 
Ответить
СообщениеУ меня вот так получилось
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$J$28;1/НАИБОЛЬШИЙ(ЕСЛИОШИБКА(1/(СТРОКА($B$1:$B$28)*($C$1:$C$28<>"БУ"));0);СТРОКА(A1));СТОЛБЕЦ(A1));"")

во втором столбце
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$J$28;1/НАИБОЛЬШИЙ(ЕСЛИОШИБКА(1/(СТРОКА($B$1:$B$28)*($C$1:$C$28<>"БУ"));0);СТРОКА(B1))-1;СТОЛБЕЦ(B1));"")

Автор - pabchek
Дата добавления - 09.11.2015 в 11:39
SLAVICK Дата: Понедельник, 09.11.2015, 11:45 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Ставьте автофильтр
Зафильтруйте строки, которые нужно удалить
Выделите всю таблицу до конца (кроме шапки)
Нажмите Shift + пробел - это выделит всю строку
Нажмите Alt + ж - это выделит только видимый диаппазон
Нажмите Ctrl + - - это удалит выделенные строки
Снимите фильтр
Все :D

Поправка.
Если нужно сохранить подписи эти действия сделайте сначала:
Выделите столбец с объединенными ячейками
отмените объединение
F5
Alt +вй
Enter
= + стрелка вверх,
Ctrl + Enter
Выделите столбец с объединенными ячейками
Ctrl + с
правой кнопкой мыши вставить значения.

На все про все уходит секунд 20 yes
К сообщению приложен файл: 9878277-2-.xlsx (9.3 Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 09.11.2015, 11:57
 
Ответить
СообщениеСтавьте автофильтр
Зафильтруйте строки, которые нужно удалить
Выделите всю таблицу до конца (кроме шапки)
Нажмите Shift + пробел - это выделит всю строку
Нажмите Alt + ж - это выделит только видимый диаппазон
Нажмите Ctrl + - - это удалит выделенные строки
Снимите фильтр
Все :D

Поправка.
Если нужно сохранить подписи эти действия сделайте сначала:
Выделите столбец с объединенными ячейками
отмените объединение
F5
Alt +вй
Enter
= + стрелка вверх,
Ctrl + Enter
Выделите столбец с объединенными ячейками
Ctrl + с
правой кнопкой мыши вставить значения.

На все про все уходит секунд 20 yes

Автор - SLAVICK
Дата добавления - 09.11.2015 в 11:45
pabchek Дата: Понедельник, 09.11.2015, 11:47 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
Или, если БУ всегда в первой строке
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$J$28;СТРОКА()*2;СТОЛБЕЦ(A1));"")
К сообщению приложен файл: 4763332.xlsb (10.7 Kb)


"Учиться, учиться и еще раз учиться!"
WM: R399923528092


Сообщение отредактировал pabchek - Понедельник, 09.11.2015, 11:51
 
Ответить
СообщениеИли, если БУ всегда в первой строке
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$J$28;СТРОКА()*2;СТОЛБЕЦ(A1));"")

Автор - pabchek
Дата добавления - 09.11.2015 в 11:47
pabchek Дата: Понедельник, 09.11.2015, 11:52 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
SLAVICK, таким образом не сохраняются названия из второй колонки


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
СообщениеSLAVICK, таким образом не сохраняются названия из второй колонки

Автор - pabchek
Дата добавления - 09.11.2015 в 11:52
SLAVICK Дата: Понедельник, 09.11.2015, 11:54 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
SLAVICK, таким образом не сохраняются названия из второй колонки

Дополнил предыдущий пост :D


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
SLAVICK, таким образом не сохраняются названия из второй колонки

Дополнил предыдущий пост :D

Автор - SLAVICK
Дата добавления - 09.11.2015 в 11:54
Nic70y Дата: Понедельник, 09.11.2015, 12:06 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub U_01()
    Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp)).UnMerge
    For Each c In Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
    If c = "" Then
    c.Cells = c.Offset(-1, 0)
    End If
    Next
    
    With ThisWorkbook.Worksheets("Лист1").Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
        Set Rng = .Find("БУ", , LookIn:=xlValues, lookat:=xlWhole)
        If Not Rng Is Nothing Then
            Do
                Rng.EntireRow.Delete
                Set Rng = .FindNext()
            Loop While Not Rng Is Nothing
        End If
    End With
    
End Sub
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
Sub U_01()
    Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp)).UnMerge
    For Each c In Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
    If c = "" Then
    c.Cells = c.Offset(-1, 0)
    End If
    Next
    
    With ThisWorkbook.Worksheets("Лист1").Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
        Set Rng = .Find("БУ", , LookIn:=xlValues, lookat:=xlWhole)
        If Not Rng Is Nothing Then
            Do
                Rng.EntireRow.Delete
                Set Rng = .FindNext()
            Loop While Not Rng Is Nothing
        End If
    End With
    
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 09.11.2015 в 12:06
strimax Дата: Среда, 11.11.2015, 04:14 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Nic70y, спасибо Вам и всем, кто дал советы. Я вставил в окно макроса код, но при запуске он сообщил об ошибке...
Вот что получилось:
[vba]
Код
Sub W()
U_01()
Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp)).UnMerge
For Each c In Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
If c = "" Then
c.Cells = c.Offset(-1, 0)
End If
Next

With ThisWorkbook.Worksheets("Ëèñò1").Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
Set Rng = .Find("ÁÓ", , LookIn:=xlValues, lookat:=xlWhole)
If Not Rng Is Nothing Then
Do
Rng.EntireRow.Delete
Set Rng = .FindNext()
Loop While Not Rng Is Nothing
End If
End With
End Sub
[/vba]
Как правильно воспользоваться Вашим кодом?
[moder]Оформляйте коды тегами (кнопка #)[/moder]


Сообщение отредактировал Pelena - Среда, 11.11.2015, 07:38
 
Ответить
СообщениеNic70y, спасибо Вам и всем, кто дал советы. Я вставил в окно макроса код, но при запуске он сообщил об ошибке...
Вот что получилось:
[vba]
Код
Sub W()
U_01()
Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp)).UnMerge
For Each c In Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
If c = "" Then
c.Cells = c.Offset(-1, 0)
End If
Next

With ThisWorkbook.Worksheets("Ëèñò1").Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
Set Rng = .Find("ÁÓ", , LookIn:=xlValues, lookat:=xlWhole)
If Not Rng Is Nothing Then
Do
Rng.EntireRow.Delete
Set Rng = .FindNext()
Loop While Not Rng Is Nothing
End If
End With
End Sub
[/vba]
Как правильно воспользоваться Вашим кодом?
[moder]Оформляйте коды тегами (кнопка #)[/moder]

Автор - strimax
Дата добавления - 11.11.2015 в 04:14
strimax Дата: Среда, 11.11.2015, 04:45 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Цитата удалена

SLAVICK, спасибо Вам за подробный ответ, но у меня не получается выполнить как Вы написали. Где-то что-то не идёт... Например, правой кнопкой мыши вставить значения - ничего не вставляется правой кнопкой мыши, а во всех ячейках появляются нули, объединение не пропадает. Может это связано с тем, что таблица преобразована из структуры в обычную?
[moder]Бездумное цитирование запрещено Правилами форума. Замечание Вам[/moder]


Сообщение отредактировал Pelena - Среда, 11.11.2015, 07:40
 
Ответить
СообщениеЦитата удалена

SLAVICK, спасибо Вам за подробный ответ, но у меня не получается выполнить как Вы написали. Где-то что-то не идёт... Например, правой кнопкой мыши вставить значения - ничего не вставляется правой кнопкой мыши, а во всех ячейках появляются нули, объединение не пропадает. Может это связано с тем, что таблица преобразована из структуры в обычную?
[moder]Бездумное цитирование запрещено Правилами форума. Замечание Вам[/moder]

Автор - strimax
Дата добавления - 11.11.2015 в 04:45
SLAVICK Дата: Среда, 11.11.2015, 12:36 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
объединение не пропадает.

Выделите столбец с объединенными ячейками
отмените объединение


Например, правой кнопкой мыши вставить значения - ничего не вставляется правой кнопкой мыши,


или

но при запуске он сообщил об ошибке...

Вам же Nic70y, не такой макрос дал :D

Sub W()
U_01()

Worksheets("Ëèñò1")


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
объединение не пропадает.

Выделите столбец с объединенными ячейками
отмените объединение


Например, правой кнопкой мыши вставить значения - ничего не вставляется правой кнопкой мыши,


или

но при запуске он сообщил об ошибке...

Вам же Nic70y, не такой макрос дал :D

Sub W()
U_01()

Worksheets("Ëèñò1")

Автор - SLAVICK
Дата добавления - 11.11.2015 в 12:36
  • Страница 1 из 1
  • 1
Поиск:

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