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

Вход

Регистрация

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

 

= Мир MS Excel/Как добавить строки в таблицу, чтобы небыло дублирующихся? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как добавить строки в таблицу, чтобы небыло дублирующихся?
Дмитрий Дата: Четверг, 26.05.2011, 15:49 | Сообщение № 1
Группа: Гости
Каждый день приходит дислокация по вагонам. Задача добавить в общую таблицу строки (а лучше отдельно данные по выбранным ячейкам), с проверкой их обновления, т.е. если данные повторяются, они не заносятся в общую таблицу, если изменилась хотя бы одна ячейка - добавляются в конец таблицы.
 
Ответить
СообщениеКаждый день приходит дислокация по вагонам. Задача добавить в общую таблицу строки (а лучше отдельно данные по выбранным ячейкам), с проверкой их обновления, т.е. если данные повторяются, они не заносятся в общую таблицу, если изменилась хотя бы одна ячейка - добавляются в конец таблицы.

Автор - Дмитрий
Дата добавления - 26.05.2011 в 15:49
Serge_007 Дата: Четверг, 26.05.2011, 16:11 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Пример расположения данных давайте.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПример расположения данных давайте.

Автор - Serge_007
Дата добавления - 26.05.2011 в 16:11
Гость Дата: Пятница, 27.05.2011, 08:00 | Сообщение № 3
Группа: Гости
Нужно столбцы (B, M, N, Q, R) из Таблицы 1 внести в Таблицу 2 на место (B, C, D, F, G) с условием, что данные из столбца Q первой табл. отличаются от данных столбца F таблицы 2, при чем только в том случае, если номера вагонов (столбец В) одинаковые.
Наверно коряво описал.... надеюсь поймешь. =)

http://ifolder.ru/23796518
 
Ответить
СообщениеНужно столбцы (B, M, N, Q, R) из Таблицы 1 внести в Таблицу 2 на место (B, C, D, F, G) с условием, что данные из столбца Q первой табл. отличаются от данных столбца F таблицы 2, при чем только в том случае, если номера вагонов (столбец В) одинаковые.
Наверно коряво описал.... надеюсь поймешь. =)

http://ifolder.ru/23796518

Автор - Гость
Дата добавления - 27.05.2011 в 08:00
Serge_007 Дата: Пятница, 27.05.2011, 10:41 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Формулами можно, но это "тяжело" получится.
Лучше макросами.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеФормулами можно, но это "тяжело" получится.
Лучше макросами.

Автор - Serge_007
Дата добавления - 27.05.2011 в 10:41
Гость Дата: Пятница, 27.05.2011, 12:36 | Сообщение № 5
Группа: Гости
Помогите ПЛЗ, мне в любом виде можно кривенько как-нибудь.... там доработаем напильником если че.... лишь бы автоматизировать процесс, а то объемы информации увеличиваются и пол дня убивать на эту выборку не охота как то...
 
Ответить
СообщениеПомогите ПЛЗ, мне в любом виде можно кривенько как-нибудь.... там доработаем напильником если че.... лишь бы автоматизировать процесс, а то объемы информации увеличиваются и пол дня убивать на эту выборку не охота как то...

Автор - Гость
Дата добавления - 27.05.2011 в 12:36
Serge_007 Дата: Пятница, 27.05.2011, 13:42 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Гость)
...мне в любом виде можно кривенько как-нибудь...

Это как? Что бы неправильный результат был или что бы файлы при работе висли?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Гость)
...мне в любом виде можно кривенько как-нибудь...

Это как? Что бы неправильный результат был или что бы файлы при работе висли?

Автор - Serge_007
Дата добавления - 27.05.2011 в 13:42
Hugo Дата: Пятница, 27.05.2011, 20:18 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Сколько строк нужно обрабатывать?
Думал на словаре сделать - но лениво продумывать, как в Item записать станцию и номер строки...
Если строк не тысячи, то можно тупо цикл в цикле по двум массивам, или даже по ячейкам листа пройтись.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеСколько строк нужно обрабатывать?
Думал на словаре сделать - но лениво продумывать, как в Item записать станцию и номер строки...
Если строк не тысячи, то можно тупо цикл в цикле по двум массивам, или даже по ячейкам листа пройтись.

Автор - Hugo
Дата добавления - 27.05.2011 в 20:18
Hugo Дата: Пятница, 27.05.2011, 20:50 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Ну вот под напильник.
Перебираю ячейки - если строк не тысячи, то скорости хватает.
Поставьте свой путь в Set tab1 = GetObject("c:\Temp\gost\Таблица 1.xls")
и отследите, то ли вставляется:
Code
Option Explicit

Sub rabota_dlja_gostja()
     Dim r As Range, rr As Range, c As Range, cc As Range
     Dim tab1 As Object
     Set r = [a1].CurrentRegion
     Set r = r.Offset(2, 0).Resize(r.Rows.Count - 2, r.Columns.Count)    'сдвиг выбора таблицы на  строки ниже и низ затем на 2 строки выше

     Set tab1 = GetObject("c:\Temp\gost\Таблица 1.xls")
     Set rr = tab1.Sheets(1).[a1].CurrentRegion
     Set rr = rr.Offset(5, 0).Resize(rr.Rows.Count - 5, rr.Columns.Count)    'сдвиг выбора таблицы на  строки ниже и низ затем на 5 строки выше
     For Each c In r.Columns(2).Cells
         For Each cc In rr.Columns(2).Cells
             If c.Value = cc.Value Then
                 If c.Offset(, 4).Value <> cc.Offset(, 15).Value Then
                     c.Offset(, 2).Value = cc.Offset(, 11).Value    'M=C
                     c.Offset(, 3).Value = cc.Offset(, 12).Value    'N=D
                     c.Offset(, 5).Value = cc.Offset(, 15).Value    'Q=F
                     c.Offset(, 6).Value = cc.Offset(, 16).Value    'R=G
                 End If
             End If
         Next
     Next
     tab1.Close 0
End Sub



webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНу вот под напильник.
Перебираю ячейки - если строк не тысячи, то скорости хватает.
Поставьте свой путь в Set tab1 = GetObject("c:\Temp\gost\Таблица 1.xls")
и отследите, то ли вставляется:
Code
Option Explicit

Sub rabota_dlja_gostja()
     Dim r As Range, rr As Range, c As Range, cc As Range
     Dim tab1 As Object
     Set r = [a1].CurrentRegion
     Set r = r.Offset(2, 0).Resize(r.Rows.Count - 2, r.Columns.Count)    'сдвиг выбора таблицы на  строки ниже и низ затем на 2 строки выше

     Set tab1 = GetObject("c:\Temp\gost\Таблица 1.xls")
     Set rr = tab1.Sheets(1).[a1].CurrentRegion
     Set rr = rr.Offset(5, 0).Resize(rr.Rows.Count - 5, rr.Columns.Count)    'сдвиг выбора таблицы на  строки ниже и низ затем на 5 строки выше
     For Each c In r.Columns(2).Cells
         For Each cc In rr.Columns(2).Cells
             If c.Value = cc.Value Then
                 If c.Offset(, 4).Value <> cc.Offset(, 15).Value Then
                     c.Offset(, 2).Value = cc.Offset(, 11).Value    'M=C
                     c.Offset(, 3).Value = cc.Offset(, 12).Value    'N=D
                     c.Offset(, 5).Value = cc.Offset(, 15).Value    'Q=F
                     c.Offset(, 6).Value = cc.Offset(, 16).Value    'R=G
                 End If
             End If
         Next
     Next
     tab1.Close 0
End Sub


Автор - Hugo
Дата добавления - 27.05.2011 в 20:50
Alex_ST Дата: Пятница, 27.05.2011, 20:59 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Игорь, а файл-то где? biggrin



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеИгорь, а файл-то где? biggrin

Автор - Alex_ST
Дата добавления - 27.05.2011 в 20:59
Hugo Дата: Пятница, 27.05.2011, 21:00 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Файл на ifolder smile
И уже ниже.
Добавил ещё отключение обновления экрана.
Код запускать из второй таблицы по Alt+F8 или из редактора.
Можно напильником кнопку выстругать smile

Хотя про добавление строк забыл...
Но это нужно подробнее расписать - что куда добавлять.
Вообще похоже, что это разные люди и разные задачи...
К сообщению приложен файл: gost.zip (18.1 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеФайл на ifolder smile
И уже ниже.
Добавил ещё отключение обновления экрана.
Код запускать из второй таблицы по Alt+F8 или из редактора.
Можно напильником кнопку выстругать smile

Хотя про добавление строк забыл...
Но это нужно подробнее расписать - что куда добавлять.
Вообще похоже, что это разные люди и разные задачи...

Автор - Hugo
Дата добавления - 27.05.2011 в 21:00
nilem Дата: Воскресенье, 29.05.2011, 13:53 | Сообщение № 11
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Еще вариантец. Жми стакан smile
"Чугун 1" и "Чугун I" считаем за разные станции.
К сообщению приложен файл: _2.zip (36.8 Kb)


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Воскресенье, 29.05.2011, 13:54
 
Ответить
СообщениеЕще вариантец. Жми стакан smile
"Чугун 1" и "Чугун I" считаем за разные станции.

Автор - nilem
Дата добавления - 29.05.2011 в 13:53
Гость Дата: Понедельник, 30.05.2011, 11:30 | Сообщение № 12
Группа: Гости
Спасибо, народ, за помощь!!! Но в ходе тестирования выявил еще кои какие свои ошибки в постановке задачи.... Давайте доделаем, раз уж взялись =)
Вобщем нужно что бы столбец Q отличался не только от F, но и от столбца Е. А так же хотелось бы, что бы при добавлении новых строк учитывалась только последняя строка с одинаковым номером вагона, т.к. таблица будет постоянно дополняться, и в итоге случится ситуация, что вагон снова пойдет по тем же станциям, а добавляться данные не будут....

ЗЫ: тестил на последнем екселевском файле от nilem
 
Ответить
СообщениеСпасибо, народ, за помощь!!! Но в ходе тестирования выявил еще кои какие свои ошибки в постановке задачи.... Давайте доделаем, раз уж взялись =)
Вобщем нужно что бы столбец Q отличался не только от F, но и от столбца Е. А так же хотелось бы, что бы при добавлении новых строк учитывалась только последняя строка с одинаковым номером вагона, т.к. таблица будет постоянно дополняться, и в итоге случится ситуация, что вагон снова пойдет по тем же станциям, а добавляться данные не будут....

ЗЫ: тестил на последнем екселевском файле от nilem

Автор - Гость
Дата добавления - 30.05.2011 в 11:30
nilem Дата: Понедельник, 30.05.2011, 18:17 | Сообщение № 13
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
А файл от Hugo смотрели? Может он лучше подойдет?


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеА файл от Hugo смотрели? Может он лучше подойдет?

Автор - nilem
Дата добавления - 30.05.2011 в 18:17
Hugo Дата: Понедельник, 30.05.2011, 19:19 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Нет, у меня нет добавления.
В принципе, несложно добавить добавление smile - перебирать во внешнем цикле тот лист, из которого нужно добавить, и если пары не нашлось - то текущую строку добавляем во второй лист.
Но мне сейчас вникать/доделывать недосуг...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНет, у меня нет добавления.
В принципе, несложно добавить добавление smile - перебирать во внешнем цикле тот лист, из которого нужно добавить, и если пары не нашлось - то текущую строку добавляем во второй лист.
Но мне сейчас вникать/доделывать недосуг...

Автор - Hugo
Дата добавления - 30.05.2011 в 19:19
nilem Дата: Вторник, 31.05.2011, 10:34 | Сообщение № 15
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Пробуйте так. Теперь зеленая стрелка (стакан куда-то потерялся smile ).
К сообщению приложен файл: 2397028.zip (92.5 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеПробуйте так. Теперь зеленая стрелка (стакан куда-то потерялся smile ).

Автор - nilem
Дата добавления - 31.05.2011 в 10:34
Гость Дата: Среда, 01.06.2011, 15:35 | Сообщение № 16
Группа: Гости
Блин! По-моему все работает как надо!!! Дай я тебя расцелую, Nilem!!! Hugo, тож спасибо за помощь! Отличный сайт. Респектую =)
 
Ответить
СообщениеБлин! По-моему все работает как надо!!! Дай я тебя расцелую, Nilem!!! Hugo, тож спасибо за помощь! Отличный сайт. Респектую =)

Автор - Гость
Дата добавления - 01.06.2011 в 15:35
  • Страница 1 из 1
  • 1
Поиск:

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