Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2015, 21:13   #1
riabov5
 
Регистрация: 24.05.2015
Сообщений: 3
По умолчанию Удаление дубликатов в строке

Добрый день!

Подскажите пожалуйста, как реализовать удаление дубликатов в строке. Как оставить только уникальные данные?
Вложения
Тип файла: rar Лист Microsoft Office Excel.rar (6.9 Кб, 13 просмотров)
riabov5 вне форума Ответить с цитированием
Старый 24.05.2015, 21:39   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1. копируете А2:L4
2. вставляете специальной вставкой в N2 (транспонировать)
3. отмечаете N:P
4. Данные, Удалить дубликаты
5. копируете N1:P12
6. вставляете спецмальной вставкой в А2 (транспонировать)
7. удаляете колонки N:P

написать это все было дольше раза в 3, чем сделать.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.05.2015, 21:51   #3
riabov5
 
Регистрация: 24.05.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
1. копируете А2:L4
2. вставляете специальной вставкой в N2 (транспонировать)
3. отмечаете N:P
4. Данные, Удалить дубликаты
5. копируете N1:P12
6. вставляете спецмальной вставкой в А2 (транспонировать)
7. удаляете колонки N:P

написать это все было дольше раза в 3, чем сделать.
Спасибо, дело в том, что имеется порядка 5 000 строк и после телефонов есть и другие данные, если так сделать, то будет сдвиг колонок.
riabov5 вне форума Ответить с цитированием
Старый 24.05.2015, 22:24   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Если не на МАКе:
Код:
Option Explicit

Sub tt()
    Dim r As Range, c As Range
    Application.ScreenUpdating = False
    With ActiveSheet.UsedRange
        For Each r In .Rows
            With CreateObject("scripting.dictionary"): .comparemode = 1
                For Each c In r.Cells
                    If Not .exists(c.Value) Then .Item(c.Value) = 0 Else c.Clear
                Next
            End With
        Next
    End With
    Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 24.05.2015, 23:10   #5
riabov5
 
Регистрация: 24.05.2015
Сообщений: 3
По умолчанию

[QUOTE=Hugo121;1503501]Если не на МАКе:
Код:
Option Explicit

Sub tt()
    Dim r As Range, c As Range
    Application.ScreenUpdating = False
    With ActiveSheet.UsedRange
        For Each r In .Rows
            With CreateObject("scripting.dictionary"): .comparemode = 1
                For Each c In r.Cells
                    If Not .exists(c.Value) Then .Item(c.Value) = 0 Else c.Clear
                Next
            End With
        Next
    End With
    Application.ScreenUpdating = True
End Sub
[/QUOTE

Спасибо! То что нужно
riabov5 вне форума Ответить с цитированием
Старый 24.05.2015, 23:17   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Если много и так уже пустых ячеек - то есть смысл сперва проверить наличие значения, чтоб не удалять и так повтор пустых:
Код:
Sub tt()
    Dim r As Range, c As Range, t$
    Application.ScreenUpdating = False
    With ActiveSheet.UsedRange
        For Each r In .Rows
            With CreateObject("scripting.dictionary"): .comparemode = 1
                For Each c In r.Cells
                    t = c.Value
                    If Len(t) Then
                        If Not .exists(t) Then .Item(t) = 0& Else c.Clear
                    End If
                Next
            End With
        Next
    End With
    Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление дубликатов с ListBox celovec Общие вопросы Delphi 7 13.09.2016 09:07
Удаление дубликатов SolovejK Общие вопросы Delphi 7 13.03.2015 23:31
Удаление дубликатов Wind-up Bird Microsoft Office Excel 9 02.02.2012 12:49
Удаление дубликатов строк hon Паскаль, Turbo Pascal, PascalABC.NET 10 02.08.2011 05:29
Удаление дубликатов Deltist Microsoft Office Excel 11 14.01.2011 16:01