Как использовать удаление дубликатов в таблице
При работе с электронными таблицами важно следить за тем, чтобы данные были актуальными и не содержали ошибок. Неверная информация может быть внесена самыми разными способами. В том числе одни и те же данные могут быть загружены или скопированы и вставлены несколько раз. Так появляются дубликаты, которые нужно удалить. Для этого существует специальная функция.
Удаляйте с умом
Перед тем как изложить последовательность шагов, проговорим несколько важных моментов.
Вы можете удалить повторяющиеся значения из выбранного диапазона данных или форматированной таблицы.
При запуске функции вы указываете, по каким столбцам нужно искать дубликаты. Очевидно, что выбор только одного параметра требует от пользователя большей внимательности и проверки, действительно ли в данном случае не может быть оправданных повторов. Выбор всех столбцов означает, что мы ищем полные копии строк. Если у нас две одинаковые строки, значит явно что-то задвоилось.
Если вы выделите диапазон внутри большой таблицы, появится сообщение с предложением включить данные из смежных ячеек. Еще раз проверьте сами себя и нажмите «Развернуть» или «Удалить в выделенном диапазоне».
Если вы сомневаетесь в выполненной операции и хотите восстановить удаленные данные, лучше сразу используйте кнопку «Отменить» на верхней панели инструментов или сочетание клавиш Ctrl+Z.
Как удалить дубликаты
Для иллюстрации возьмем пример таблицы, в которой специально продублированы две нижние строки.
Сначала выделите нужный диапазон ячеек или всю таблицу. Осталось сделать четыре шага:
- Откройте вкладку «Данные», нажмите кнопку «Удалить дубликаты». Если система предложит поискать в смежных ячейках, согласитесь или отклоните предложение.
- Откроется окно «Удалить дубликаты». Вы можете поставить галочку в опции «Мои данные содержат заголовки» и исключить заголовки столбцов из поиска.
- Выберите нужные столбцы по отдельности или оставьте опцию «Выделить всё».
- Нажмите на кнопку «OK».
Появится окно с информацией о том, сколько повторов удалено и сколько уникальных значений осталось. Дубликатов нет, можно работать с данными дальше.
Как убрать дубли из агреггированной таблицы
Есть 4 таблицы. Word и Adj связанны отношением многие ко многие через таблицу Combinations. Examples связано отношением многие-к-одному Word Стоит задача получить значения для каждого слова (Word) в таком виде
people|young,other,live,new. |любой пример из examples person|. |любой пример из examples
У меня запрос выдает некорреткные данные
select w.name word, GROUP_CONCAT(adj.name,',') adjectives, e.name from combinations c, "adjectives" adj, word w, examples e where c.word_id = w.id and c.adj_id = adj.id and e.word_id = w.id group by w.name ORDER by w.id
Почему то дубли в колонке идут https://yadi.sk/d/f7VANwWFroiwlQ бд sqlite полная структура
CREATE TABLE adjectives ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL ); CREATE TABLE combinations ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, word_id INTEGER NOT NULL REFERENCES word (Id), adj_id INTEGER NOT NULL REFERENCES adjectives (id) ); CREATE TABLE examples ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name INTEGER, word_id INTEGER REFERENCES word (Id) ); CREATE TABLE word ( Id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT );
Как удалить повторяющиеся значения внутри ячейки?
При сцепке между категориями есть повторы. Как можно удалить повторяющиеся значения именно В САМИХ ячейках (т.е не между строками, типа удаления дубликатов а в самих ячейках)?
Список большой, примерно 130к строк, поэтому вручную точно не вариант этим заниматься.
- Вопрос задан более года назад
- 503 просмотра
4 комментария
Простой 4 комментария
Александр @ForestAndGarden
Александр @ForestAndGarden
Убирать дубликаты нужно перед этапом сцепления, а не после получения результата.
alstrelok @alstrelok Автор вопроса
alstrelok @alstrelok Автор вопроса
Александр, согласен, но это немного другой случай
Решения вопроса 2
Александр @ForestAndGarden
Совершенствовать среду обитания
Формула для Гугл Таблиц:
=BYROW(A2:A4;LAMBDA(rng;JOIN("/";UNIQUE(ArrayFormula(SPLIT(TRIM(rng);"/";1;1));1))))
Вместо A2:A4 укажите свой диапазон.
Ответ написан более года назад
Комментировать
Нравится 1 Комментировать
Григорий Боев @ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
/** * Удаляет последовательные дубликаты в тексте * * @author Boew Grigory (ff.nspu@gmail.com) * @param text Текст для удаления дубликатов * @param [delimiter=""] Раздельтель фраз. По умолчанию - пробел * @return Текст без дубликатов * @customfunction */ function removeDuplications(text, delimiter=" ") < if (text.map)< return text.map(removeDuplications(text, delimiter)) >; let words = text.split(delimiter); return words.filter((word, index)=>(index!==0)&&(words[index-1]!==word)).join(delimiter); >
В качестве text можно передать весь столбец
Ответ написан более года назад
Комментировать
Нравится Комментировать
Как убрать дублирование таблицы в ворде
Возникла необходимость скопировать в Word листы всей книги, выполнив прежде с ними некоторые идентичные действия, но, т.к. в Excel должны остаться листы без изменений сделано следующее:
создается новый лист -> на него копируется таблица -> объединяются ячейки и т.п. -> таблица с нового листа вставляется в Word -> новый лист удаляется -> Next.
Тут возникает проблема: объединенные ячейки копируются не с одного листа, а со всех и получается в Word следующая картина:
В Лист1 стоит: Наименование 1 -> Документ1 получается: Наименование 1
В Лист2 стоит: Наименование 2 -> Документ2 получается: Наименование 1Наименование 2
В Лист3 стоит: Наименование 3 -> Документ3 получается: Наименование 1Наименование 2Наименование 3
и т.д.
Подскажите, что не так в этом макросе?
Const sDELIM As String = «»
Dim rCell1 As Range
Dim sMergeStr1 As String
StrVal = StrVal & vbLf & NextStr
i = Application.Worksheets.Count
For iList = 1 To i
Worksheets(iList).Activate
Range(«A:J»).Copy
Worksheets.Add After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = «New»
Set wb = ActiveWorkbook
ActiveWorkbook.Sheets(«New»).Paste
Selection.Cells(1).Select
S1 = «Наименованин»
Cells.Find(What:=S1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate
I1 = Selection.Column
J1 = Selection.Row
Range(Cells(J1 — 2, I1), Cells(J1 + 1, I1)).Select
With Selection
If TypeName(Selection) <> «Range» Then Exit Sub
With Selection
For Each rCell1 In .Cells
sMergeStr1 = sMergeStr1 & sDELIM & rCell1.Text
Next rCell1
Application.DisplayAlerts = False
.Merge Across:=False
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr1, 1 + Len(sDELIM))
End With
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Range(Cells(J1 — 1, I1), Cells(J1 + 1, 10)).Delete Shift:=xlUp
Selection.Cells(1).Select
Range(«A:J»).Select
Selection.Rows.AutoFit
Selection.Copy
Set wa1 = CreateObject(«Word.Application»)
wa1.Visible = True: Set wd1 = wa1.Documents.Add
wa1.Selection.PasteExcelTable False, False, False
Application.CutCopyMode = False
wa1.Run «Макрос1»
Application.DisplayAlerts = False
wb.Sheets(«New»).Delete
Application.DisplayAlerts = True