×
Показано с 1 по 12 из 12
  1. Клерк
    Регистрация
    26.06.2016
    Сообщений
    6

    Excel: выявить уникальные артикулы

    Добрый день, есть задача - выявить уникальные артикулы в таблице (диапазон - столбцы от С до G). Попыталась сделать условным форматированием, но в отдельный столбец приходится вносить их вручную. Какие еще есть варианты? Желательно без макроса, формулой. Заранее спасибо.
    Поделиться с друзьями

  2. Клерк Аватар для Старый ворчун
    Регистрация
    27.03.2002
    Сообщений
    12,784
    ... поскольку вышеизложенное в свете вышеуказанного влечет нижеследующее по отношению к поименованному...

  3. Клерк
    Регистрация
    26.06.2016
    Сообщений
    6
    Уже пробовала, почему то не все повторы удаляются.

  4. Клерк
    Регистрация
    17.12.2010
    Сообщений
    169
    пробовала, почему то не все повторы удаляются.
    Возможно, это разные данные. Например, 4<>"4" или "а"<>"а "

    Нужно показывать в файле-примере Ваши данные.
    Непонятно: уникальные каждого столбца отдельно или уникальные диапазона?
    Артикулы числовые или текстовые?

    Для самого сложного случая (уникальные диапазона столбцов, данные смешаны) решение в файле.
    Вряд ли оно Вам понравится )
    Формулы массива. Водятся тремя клавишами - Ctrl+Shift+Enter
    Сложны в вычислениях и при большом количестве таких формул возможны тормоза при пересчете формул.
    Такое лучше решать с помощью доп.вычислений или макросов, функций пользователя (UDF)

    Будет Ваш пример, попробуем упростить формулу.
    Вложения Вложения
    Последний раз редактировалось vikttur; 26.06.2016 в 22:47.

  5. Клерк
    Регистрация
    26.06.2016
    Сообщений
    6
    Добрый день, спасибо за ответ. Файл во вложении. Числовые артикулы, вроде бы одинаковые. Нужны те, которые больше не повторяются.Файл.xls

  6. Клерк
    Регистрация
    17.12.2010
    Сообщений
    169
    Еще больше запущено
    Уникальные нужны в каждом блоке данных (между желтыми строками) или уникальные во всем диапазоне?

    Еще раз: лучше написать макрос или функцию пользователя (тот же макрос, но вызов ее записывается как формула в ячейке).

  7. Клерк
    Регистрация
    26.06.2016
    Сообщений
    6
    Во всем диапазоне, но я уже поняла, что кроме как макросом, больше никак не решить проблему. Спасибо за участие.

  8. Клерк Аватар для Старый ворчун
    Регистрация
    27.03.2002
    Сообщений
    12,784
    Цитата Сообщение от Cherrybird Посмотреть сообщение
    Во всем диапазоне, но я уже поняла, что кроме как макросом, больше никак не решить проблему. Спасибо за участие.
    Excel 2007, условное форматирование: Файл2.xls
    ... поскольку вышеизложенное в свете вышеуказанного влечет нижеследующее по отношению к поименованному...

  9. Клерк
    Регистрация
    17.12.2010
    Сообщений
    169
    Цитата Сообщение от Старый ворчун Посмотреть сообщение
    Excel 2007, условное форматирование: Файл2.xls
    как я понял, автор использовала УФ, но нужно вытянуть в отдельный диапазон:
    Попыталась сделать условным форматированием, но в отдельный столбец приходится вносить их вручную.
    я уже поняла, что кроме как макросом, больше никак не решить
    Я об этом не писал. Можно и формулами, но такое решение слишком громоздкое для этой задачи.
    А макрос - чего его бояться? Делов-то - нажать кнопульку )

  10. Клерк
    Регистрация
    26.06.2016
    Сообщений
    6
    Да, действительно, уф уже использовала и все получилось ) буду изучать макросы, как оказалось, пользительная вещь )

  11. Клерк
    Регистрация
    17.12.2010
    Сообщений
    169
    Вот такой небольшой макрос выберет уникальные записи:
    Код:
    Sub UuniqueArticles()
    Dim ArrData(), ArrRes()
    Dim lRws As Long
    Dim i As Long, j As Long, k As Long
        Application.ScreenUpdating = False ' отключаем обновление экрана (чтобы не "моргал")
        
        With ActiveSheet
            lRws = .UsedRange.Row + .UsedRange.Rows.Count - 1 ' последняя строка с данными
            ArrData = .Range("A4:G" & lRws).Value ' данные листа в массив
            ' задаем размерность массива выгрузки по максимуму
            ReDim ArrRes(1 To lRws * 5, 1 To 1)
            
            For j = 3 To 7 ' по нужным "столбцам" массива
                For i = 1 To UBound(ArrData) ' по "строкам" массива
                    If ArrData(i, j) <> Empty Then ' данные есть
                        ' если в первом столбце число, то найденный код пишем в массив выгрузки
                        ' добавляем знак для преобразования чисел в текст
                        If Val(ArrData(i, 1)) Then k = k + 1: ArrRes(k, 1) = ArrData(i, j) & "_"
                    End If
                Next i
            Next j
        
            If k > 0 Then
                .Range("I2").Resize(k, 1).Value = ArrRes ' выгружаем все коды на лист
                lRws = .Cells(.Rows.Count, 9).End(xlUp).Row ' последняя строка с кодами
                ' удаляем дубли кодов
                .Range("I1:I" & lRws).RemoveDuplicates Columns:=1, Header:=xlYes
            End If
        End With
        
        Application.ScreenUpdating = True ' включаем обновление экрана
    End Sub
    Живет он в общем модуле проекта книги. Зайти на разведку в редактор VBA -Alt+F11.
    Вложения Вложения
    Последний раз редактировалось vikttur; 01.07.2016 в 02:08. Причина: замена вложения

  12. Клерк
    Регистрация
    26.06.2016
    Сообщений
    6
    Большое спасибо за помощь!

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)