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

Вход

Регистрация

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

 

= Мир MS Excel/Как удалить дубли только во втором столбце? - Мир MS Excel

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

Excel 2007
Добрый день, сразу скажу, что перерыл темы похожие, не нашёл ответа.
Есть два столба ячеек с ключевыми словами, логика такая, что в первом столбце А - "старые данные", а в стобце В - "новые данные",
как удалить дубли только из столбца В, чтобы в итоге остались в столбце В только "новые" уникальные значения.
Благодарю.
К сообщению приложен файл: 9131609.xlsx(9.5 Kb)


Сообщение отредактировал AdwordsDirect - Воскресенье, 01.10.2017, 13:11
 
Ответить
СообщениеДобрый день, сразу скажу, что перерыл темы похожие, не нашёл ответа.
Есть два столба ячеек с ключевыми словами, логика такая, что в первом столбце А - "старые данные", а в стобце В - "новые данные",
как удалить дубли только из столбца В, чтобы в итоге остались в столбце В только "новые" уникальные значения.
Благодарю.

Автор - AdwordsDirect
Дата добавления - 01.10.2017 в 13:10
Gustav Дата: Воскресенье, 01.10.2017, 14:04 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2211
Репутация: 893 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Можно так: в ячейке C1 - формула:
Код
=ЕНД(ПОИСКПОЗ(B1;$A$1:$A$50;0))

И протягиваем вниз до конца данных в столбце B. Где получилось ЛОЖЬ - удаляем, где ИСТИНА - оставляем.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеМожно так: в ячейке C1 - формула:
Код
=ЕНД(ПОИСКПОЗ(B1;$A$1:$A$50;0))

И протягиваем вниз до конца данных в столбце B. Где получилось ЛОЖЬ - удаляем, где ИСТИНА - оставляем.

Автор - Gustav
Дата добавления - 01.10.2017 в 14:04
AdwordsDirect Дата: Воскресенье, 01.10.2017, 14:57 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Работает, спасибо.
Но что, если будет данных порядках 10 000-100 000 ячеек?
Есть какой-то вариант автоматически оставить уникальные значения в В или С столбце? - Было бы вообще шикарно hands
 
Ответить
СообщениеРаботает, спасибо.
Но что, если будет данных порядках 10 000-100 000 ячеек?
Есть какой-то вариант автоматически оставить уникальные значения в В или С столбце? - Было бы вообще шикарно hands

Автор - AdwordsDirect
Дата добавления - 01.10.2017 в 14:57
anvg Дата: Воскресенье, 01.10.2017, 15:17 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток.
Версия на Power Query.
Успехов.
К сообщению приложен файл: 9263116.xlsx(17.9 Kb)
 
Ответить
СообщениеДоброе время суток.
Версия на Power Query.
Успехов.

Автор - anvg
Дата добавления - 01.10.2017 в 15:17
gling Дата: Воскресенье, 01.10.2017, 15:19 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2383
Репутация: 623 ±
Замечаний: 0% ±

2010
Цитата AdwordsDirect, 01.10.2017 в 14:57, в сообщении № 3 ()
вариант автоматически
ПолуАвтоматически--Выделить нужный столбец--на ленте вкладка Данные--подгруппа Работа с данными--Удалить дубликаты.


ЯД-41001506838083
 
Ответить
Сообщение
Цитата AdwordsDirect, 01.10.2017 в 14:57, в сообщении № 3 ()
вариант автоматически
ПолуАвтоматически--Выделить нужный столбец--на ленте вкладка Данные--подгруппа Работа с данными--Удалить дубликаты.

Автор - gling
Дата добавления - 01.10.2017 в 15:19
Gustav Дата: Воскресенье, 01.10.2017, 16:16 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2211
Репутация: 893 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Вариант для получения результата с использованием SQL для исполнения в Окне отладки. Предпосылки здесь.
[vba]
Код
Set rst = CreateObject("ADODB.Recordset"): _
rst.Open "SELECT DISTINCT F2 FROM [Лист1$] " _
& " WHERE F2 Not In (SELECT DISTINCT F1 FROM [Лист1$] WHERE F1 Is Not Null)", _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& ThisWorkbook.FullName & _
";Extended Properties='Excel 12.0;HDR=No'": _
[Лист1!C1].CopyFromRecordset rst
[/vba]
Это фактически одна строка кода VBA, содержащая несколько операторов, разделенных двоеточием. Просто копируете в Окно отладки редактора VBA (Alt+F11, Ctrl+G), встаете в конец (за словом "rst") и жмёте Enter. Результат - в колонке C, причём за счёт применения DISTINCT еще и отсортированный по алфавиту.

Если не нравится в Окне отладки, можно несложным преобразованием превратить в более традиционного вида процедуру Sub ... End Sub.

[p.s.]Да! И файл должен быть предварительно сохранен на диске, чтобы правильно сработало ThisWorkbook.FullName[/p.s.]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Воскресенье, 01.10.2017, 16:20
 
Ответить
СообщениеВариант для получения результата с использованием SQL для исполнения в Окне отладки. Предпосылки здесь.
[vba]
Код
Set rst = CreateObject("ADODB.Recordset"): _
rst.Open "SELECT DISTINCT F2 FROM [Лист1$] " _
& " WHERE F2 Not In (SELECT DISTINCT F1 FROM [Лист1$] WHERE F1 Is Not Null)", _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& ThisWorkbook.FullName & _
";Extended Properties='Excel 12.0;HDR=No'": _
[Лист1!C1].CopyFromRecordset rst
[/vba]
Это фактически одна строка кода VBA, содержащая несколько операторов, разделенных двоеточием. Просто копируете в Окно отладки редактора VBA (Alt+F11, Ctrl+G), встаете в конец (за словом "rst") и жмёте Enter. Результат - в колонке C, причём за счёт применения DISTINCT еще и отсортированный по алфавиту.

Если не нравится в Окне отладки, можно несложным преобразованием превратить в более традиционного вида процедуру Sub ... End Sub.

[p.s.]Да! И файл должен быть предварительно сохранен на диске, чтобы правильно сработало ThisWorkbook.FullName[/p.s.]

Автор - Gustav
Дата добавления - 01.10.2017 в 16:16
AdwordsDirect Дата: Понедельник, 02.10.2017, 11:24 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Встроенная функция удаление дублей не корректно работает, либо я не могу понять как с ней обращаться.

Код не срабатывает корректно в других случаях.
=ЕНД(ПОИСКПОЗ(B1;$A$1:$A$50;0))


А этот вариант с SQL вообще что-то не понятное, вроде ввожу его отладчик нажимаю Ентер, а оно просто на другую строку меня переносит, не сохраняет как макрос, а как его в вид макроса перевести я ума не приложу.

PS Всё решилось. Просто у одних из дублей в конце стоял пробел. Всё работает. Спс.


Сообщение отредактировал AdwordsDirect - Понедельник, 02.10.2017, 11:49
 
Ответить
СообщениеВстроенная функция удаление дублей не корректно работает, либо я не могу понять как с ней обращаться.

Код не срабатывает корректно в других случаях.
=ЕНД(ПОИСКПОЗ(B1;$A$1:$A$50;0))


А этот вариант с SQL вообще что-то не понятное, вроде ввожу его отладчик нажимаю Ентер, а оно просто на другую строку меня переносит, не сохраняет как макрос, а как его в вид макроса перевести я ума не приложу.

PS Всё решилось. Просто у одних из дублей в конце стоял пробел. Всё работает. Спс.

Автор - AdwordsDirect
Дата добавления - 02.10.2017 в 11:24
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как удалить дубли только во втором столбце? (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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