Доброго вечера форум. Доброго вечера специалисты Excel. Прошу Вашей подсказки, каким образом можно удалить дублирующие элементы таблицы и отсортировать по шифру, то есть по колонке номер один. Да, я согласен, как сказал один из Уважаемых Специалистов этого Форума, что шифр корявый. Но "что поделать" шифр нормативный и менять его я не имею права. Думаю, что принцип сортировки должен быть следующий: 1. Для однозначного шифра - по возрастанию; 2. Для шифра, состоящего из двух групп цифр через тире: Сначала по возрастанию групп цифр до тире, затем по возрастанию после тире. 3. Ну а "после всего" всё остальное. Да, и по поводу 3 колонки. Из двух строчек, в одной из которых есть третья колонка, а в другой нет, удалить ту строчку, в которой третья колонка пустая.
Доброго вечера форум. Доброго вечера специалисты Excel. Прошу Вашей подсказки, каким образом можно удалить дублирующие элементы таблицы и отсортировать по шифру, то есть по колонке номер один. Да, я согласен, как сказал один из Уважаемых Специалистов этого Форума, что шифр корявый. Но "что поделать" шифр нормативный и менять его я не имею права. Думаю, что принцип сортировки должен быть следующий: 1. Для однозначного шифра - по возрастанию; 2. Для шифра, состоящего из двух групп цифр через тире: Сначала по возрастанию групп цифр до тире, затем по возрастанию после тире. 3. Ну а "после всего" всё остальное. Да, и по поводу 3 колонки. Из двух строчек, в одной из которых есть третья колонка, а в другой нет, удалить ту строчку, в которой третья колонка пустая.Юрий_Нд
Sub ДублиТретьяКолонкаПустая() With Worksheets("Лист1") 'принуждение таблицы к рабочему формату .Rows("4:4").Insert Shift:=xlDown Dim r As Range: Set r = .Cells(5, 3).CurrentRegion r.RemoveDuplicates Columns:=Array(1, 2), Header _ :=xlYes .Rows("4:4").Delete Shift:=xlUp 'возврат исходного формата End With End Sub
[/vba]
Сортировка должна быть: 1 111-0169 1424-11598 2 200-0001 3
?
[vba]
Код
Sub ДублиТретьяКолонкаПустая() With Worksheets("Лист1") 'принуждение таблицы к рабочему формату .Rows("4:4").Insert Shift:=xlDown Dim r As Range: Set r = .Cells(5, 3).CurrentRegion r.RemoveDuplicates Columns:=Array(1, 2), Header _ :=xlYes .Rows("4:4").Delete Shift:=xlUp 'возврат исходного формата End With End Sub
[/vba]
Сортировка должна быть: 1 111-0169 1424-11598 2 200-0001 3
InExSu, спасибо за ответ, "хотелось бы" так: Сортировка должна быть: 1 2 3 200-0001 202-1140 270-0050 111-0169 112-0061 123-0514-У 123-0515-У 1424-11598 1425-11702 Но если это очень сложно, то пусть будет любая сортировка, главное удалить дубликаты.
InExSu, спасибо за ответ, "хотелось бы" так: Сортировка должна быть: 1 2 3 200-0001 202-1140 270-0050 111-0169 112-0061 123-0514-У 123-0515-У 1424-11598 1425-11702 Но если это очень сложно, то пусть будет любая сортировка, главное удалить дубликаты.Юрий_Нд
Сообщение отредактировал Юрий_Нд - Суббота, 16.09.2017, 11:04
Привожу оригинал (в файле или здесь): 1 2 1 Затраты труда рабочих-строителей 2 Средний разряд работ 3 Затраты труда машинистов Машины и механизмы 200-0001 Автомобили бортовые, грузоподъемность до 3 т 202-1140 Краны на автомобильном ходу, грузоподъемность 6,3 т 270-0050 Вибраторы для всех видов строительства, кроме гидротехнического Материалы 111-0169 Гвозди проволочные круглые формовочные 1,8х150 мм 111-0820 Проволока стальная низкоуглеродистая разного назначения черная, диаметр 0,55 мм 112-0061 Доски обрезные из хвойных пород, длина 4-6,5 м, ширина 75-150 мм, толщина 44 мм и более, III сорт 123-0514-У Щиты опалубки, ширина 300-750 мм, толщина 25 мм 123-0515-У Щиты опалубки, ширина 300-750 мм, толщина 40 мм 1424-11598 Смеси бетонные готовые тяжелые, класс бетона В7,5 [М-100], крупность заполнителя более 40 мм 1424-11600 Смеси бетонные готовые тяжелые, класс бетона В 15 [М-200], крупность заполнителя более 40 мм П Арматура для монолитных железобетонных конструкций и как я уже говорил:
Привожу оригинал (в файле или здесь): 1 2 1 Затраты труда рабочих-строителей 2 Средний разряд работ 3 Затраты труда машинистов Машины и механизмы 200-0001 Автомобили бортовые, грузоподъемность до 3 т 202-1140 Краны на автомобильном ходу, грузоподъемность 6,3 т 270-0050 Вибраторы для всех видов строительства, кроме гидротехнического Материалы 111-0169 Гвозди проволочные круглые формовочные 1,8х150 мм 111-0820 Проволока стальная низкоуглеродистая разного назначения черная, диаметр 0,55 мм 112-0061 Доски обрезные из хвойных пород, длина 4-6,5 м, ширина 75-150 мм, толщина 44 мм и более, III сорт 123-0514-У Щиты опалубки, ширина 300-750 мм, толщина 25 мм 123-0515-У Щиты опалубки, ширина 300-750 мм, толщина 40 мм 1424-11598 Смеси бетонные готовые тяжелые, класс бетона В7,5 [М-100], крупность заполнителя более 40 мм 1424-11600 Смеси бетонные готовые тяжелые, класс бетона В 15 [М-200], крупность заполнителя более 40 мм П Арматура для монолитных железобетонных конструкций и как я уже говорил:
Если есть полный список кодов, то можно и отсортировать. Делаем допстолбец к списку, индексируем. Потом делаем допстолбец к основной таблице и присваиваем индекс в соответствии с кодом. Сортируем по допстолбцу. Удаляем допстолбец/бцы.
Если есть полный список кодов, то можно и отсортировать. Делаем допстолбец к списку, индексируем. Потом делаем допстолбец к основной таблице и присваиваем индекс в соответствии с кодом. Сортируем по допстолбцу. Удаляем допстолбец/бцы.Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Суббота, 16.09.2017, 12:24
Не знаю таких слов. Деды ДнепроГЭС построили, а тут лишь непривычная сортировка
[vba]
Код
Dim r As Range, Адрес As String
Sub ДублиТретьяКолонкаПустая() With Worksheets("Лист1") .Rows("6:7").Insert Shift:=xlDown .Rows("4:4").Copy .Rows("7:7") 'принуждение таблицы к рабочему формату Адрес = .Cells(8, 3).Address Set r = Range(Адрес).CurrentRegion r.RemoveDuplicates Columns:=Array(1, 2), Header _ :=xlYes Call ДнепроГЭС .Rows("6:7").Delete Shift:=xlUp 'возврат исходного формата End With End Sub
Sub ДнепроГЭС() 'сортировка строительной таблицы Z = Range(Адрес).CurrentRegion.Sort(Range(Адрес), xlAscending, Header:=xlYes)
Не знаю таких слов. Деды ДнепроГЭС построили, а тут лишь непривычная сортировка
[vba]
Код
Dim r As Range, Адрес As String
Sub ДублиТретьяКолонкаПустая() With Worksheets("Лист1") .Rows("6:7").Insert Shift:=xlDown .Rows("4:4").Copy .Rows("7:7") 'принуждение таблицы к рабочему формату Адрес = .Cells(8, 3).Address Set r = Range(Адрес).CurrentRegion r.RemoveDuplicates Columns:=Array(1, 2), Header _ :=xlYes Call ДнепроГЭС .Rows("6:7").Delete Shift:=xlUp 'возврат исходного формата End With End Sub
Sub ДнепроГЭС() 'сортировка строительной таблицы Z = Range(Адрес).CurrentRegion.Sort(Range(Адрес), xlAscending, Header:=xlYes)
макрос уже использует возможности Excel определять количество строк, если ему подскажут как найти таблицу. Резюме: жду листы с возможными позициями таблицы.
макрос уже использует возможности Excel определять количество строк, если ему подскажут как найти таблицу. Резюме: жду листы с возможными позициями таблицы.InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Приложите несколько листов с разными расположениями Ваших таблиц - научу макрос искать Вашу таблицу самостоятельно.
Всё в приложенном файле. Все макросы удалил, чтобы поучиться у Вас, "как это лучше делать".
2. Лист "оглавление" в данный момент на первом месте, но это бывший лист номер два, лист "исходные таблицы" в настоящий момент на втором месте, но это бывший лист номер один. Вопрос: - в настоящий момент "оглавление" лист номер один, или он остался листом номер 2? - аналогично по листу исходной таблицы.
InExSu, Спасибо за поддержку, прошу извинить за долгое отсутствие.
Приложите несколько листов с разными расположениями Ваших таблиц - научу макрос искать Вашу таблицу самостоятельно.
Всё в приложенном файле. Все макросы удалил, чтобы поучиться у Вас, "как это лучше делать".
2. Лист "оглавление" в данный момент на первом месте, но это бывший лист номер два, лист "исходные таблицы" в настоящий момент на втором месте, но это бывший лист номер один. Вопрос: - в настоящий момент "оглавление" лист номер один, или он остался листом номер 2? - аналогично по листу исходной таблицы.Юрий_Нд