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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск нестандартных дублей в столбце - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Поиск нестандартных дублей в столбце (Формулы/Formulas)
Поиск нестандартных дублей в столбце
basementphys Дата: Суббота, 04.06.2022, 21:31 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте!

Сразу к делу. У нас есть таблица с серийными номерами (абстрактная таблица, конкретную нет смысла прикладывать). Серийные номера вводятся вручную, поэтому появляются следующие дубли:
- CR6623OJ4 и CR6623DJ4 (человек путает O и D)
- PLN4558K и PLN455BK (человек путает 8 и "B")
- 23774301 и 237743O1 (человек путает цифру ноль и букву О)

Подскажите, как найти такие дубли? Я думал создать еще один столбец, заменить в серийниках 8 на B и сравнивать эти два столбца. Но таблица может быть на 50 тысяч строк, поэтому может есть способ проще?

Тема на Планете Экселя - тык.


Сообщение отредактировал basementphys - Воскресенье, 05.06.2022, 14:29
 
Ответить
СообщениеЗдравствуйте!

Сразу к делу. У нас есть таблица с серийными номерами (абстрактная таблица, конкретную нет смысла прикладывать). Серийные номера вводятся вручную, поэтому появляются следующие дубли:
- CR6623OJ4 и CR6623DJ4 (человек путает O и D)
- PLN4558K и PLN455BK (человек путает 8 и "B")
- 23774301 и 237743O1 (человек путает цифру ноль и букву О)

Подскажите, как найти такие дубли? Я думал создать еще один столбец, заменить в серийниках 8 на B и сравнивать эти два столбца. Но таблица может быть на 50 тысяч строк, поэтому может есть способ проще?

Тема на Планете Экселя - тык.

Автор - basementphys
Дата добавления - 04.06.2022 в 21:31
прохожий2019 Дата: Суббота, 04.06.2022, 21:50 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1244
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
ну например заменить O,0,8,B,D на @, а потом искать дубли - можно формулами, можно PQ - абстрактная идея, конкретику нет смысла прикладывать
 
Ответить
Сообщениену например заменить O,0,8,B,D на @, а потом искать дубли - можно формулами, можно PQ - абстрактная идея, конкретику нет смысла прикладывать

Автор - прохожий2019
Дата добавления - 04.06.2022 в 21:50
basementphys Дата: Суббота, 04.06.2022, 23:41 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

прохожий2019, в таком случае сделаю таблицу конкретной и чуть позже приложу таблицу :)


Сообщение отредактировал basementphys - Суббота, 04.06.2022, 23:42
 
Ответить
Сообщениепрохожий2019, в таком случае сделаю таблицу конкретной и чуть позже приложу таблицу :)

Автор - basementphys
Дата добавления - 04.06.2022 в 23:41
basementphys Дата: Воскресенье, 05.06.2022, 10:53 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Прикрепил пример серийников с дубликатами.
К сообщению приложен файл: 7873500-2-.xlsx (8.9 Kb)


Сообщение отредактировал basementphys - Воскресенье, 05.06.2022, 10:57
 
Ответить
СообщениеПрикрепил пример серийников с дубликатами.

Автор - basementphys
Дата добавления - 05.06.2022 в 10:53
прохожий2019 Дата: Воскресенье, 05.06.2022, 12:07 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1244
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
[vba]
Код
let
    lst = {"0","O","D","8","B"},
    rep = List.Buffer(List.Transform(lst,(x)=>{x,"@"})),
    f = (x)=> Text.Combine(List.ReplaceMatchingItems(Text.ToList(x),rep)),

    from = Excel.CurrentWorkbook(){[Name="Таблиц"]}[Content],
    typ = Table.TransformColumnTypes(from,{"Серийный номер", type text}),
    add = Table.AddColumn(typ,"mask",(x)=>f(x[Серийный номер])),
    to = Table.Group(add, {"Производитель", "mask"}, {"lst", each Text.Combine(List.Distinct([Серийный номер]),", ") })
    
in
    to
[/vba]если есть проблема кириллица/латиница - можно запихнуть сюда же
а вот что с этим делать дальше - не понятно, конечного ожидаемого результата в файле не нашёл
К сообщению приложен файл: 9884522.xlsx (18.2 Kb)


Сообщение отредактировал прохожий2019 - Воскресенье, 05.06.2022, 15:41
 
Ответить
Сообщение[vba]
Код
let
    lst = {"0","O","D","8","B"},
    rep = List.Buffer(List.Transform(lst,(x)=>{x,"@"})),
    f = (x)=> Text.Combine(List.ReplaceMatchingItems(Text.ToList(x),rep)),

    from = Excel.CurrentWorkbook(){[Name="Таблиц"]}[Content],
    typ = Table.TransformColumnTypes(from,{"Серийный номер", type text}),
    add = Table.AddColumn(typ,"mask",(x)=>f(x[Серийный номер])),
    to = Table.Group(add, {"Производитель", "mask"}, {"lst", each Text.Combine(List.Distinct([Серийный номер]),", ") })
    
in
    to
[/vba]если есть проблема кириллица/латиница - можно запихнуть сюда же
а вот что с этим делать дальше - не понятно, конечного ожидаемого результата в файле не нашёл

Автор - прохожий2019
Дата добавления - 05.06.2022 в 12:07
прохожий2019 Дата: Воскресенье, 05.06.2022, 12:10 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1244
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
о как, нехорошо...
кросс
 
Ответить
Сообщениео как, нехорошо...
кросс

Автор - прохожий2019
Дата добавления - 05.06.2022 в 12:10
basementphys Дата: Воскресенье, 05.06.2022, 14:56 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

прохожий2019, ну-ну, не ругайтесь, я добавил ссылку.
 
Ответить
Сообщениепрохожий2019, ну-ну, не ругайтесь, я добавил ссылку.

Автор - basementphys
Дата добавления - 05.06.2022 в 14:56
прохожий2019 Дата: Воскресенье, 05.06.2022, 15:42 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1244
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
я добавил ссылку
вернул сообщение
 
Ответить
Сообщение
я добавил ссылку
вернул сообщение

Автор - прохожий2019
Дата добавления - 05.06.2022 в 15:42
scriptapplications Дата: Понедельник, 06.06.2022, 14:12 | Сообщение № 9
Группа: Проверенные
Ранг: Участник
Сообщений: 68
Репутация: 12 ±
Замечаний: 0% ±

basementphys, если в серийниках возможно использование букв, то требуется правило чтобы определить следует ли переводить букву в цифру ли нет?
Например, надо иметь или таблицу символов, которые не могут встречаться в серийниках или шаблон полей серийника, по которому можно узнать позиции в которых могут быть только буквы и позиции в которых могут быть только цифры.
Если, например, в серийнике может быть буква D то как узнать наличие D это ошибка ввода или такой номер?


Сообщение отредактировал scriptapplications - Понедельник, 06.06.2022, 14:19
 
Ответить
Сообщениеbasementphys, если в серийниках возможно использование букв, то требуется правило чтобы определить следует ли переводить букву в цифру ли нет?
Например, надо иметь или таблицу символов, которые не могут встречаться в серийниках или шаблон полей серийника, по которому можно узнать позиции в которых могут быть только буквы и позиции в которых могут быть только цифры.
Если, например, в серийнике может быть буква D то как узнать наличие D это ошибка ввода или такой номер?

Автор - scriptapplications
Дата добавления - 06.06.2022 в 14:12
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Поиск нестандартных дублей в столбце (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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