Как да разбера къде греша, при използването на Remove Duplicates?

Microsoft Excel

Става въпрос с един списък с много имена, които се повтарят. С опцията "Remove duplicates" премахвам повтарящите се. Но забелязвам имена, които си стоят и не са премахнати. Отделям ги на друго място и пробвам, но пак не става. Горе от падащото меню за формата на клетката давам Text и за двете и пак същата работа, връщам General и отново без ефект. Копирам ги и отивам в нов шийт и същата работа. Без резултат и като ги сложа в нова таблица. Започнах да се притеснявам, относно зрението ми, или дали въобще мога да пиша правилно, но така и е видях грешка, колкото и да се вторачвах. Списъка е много дълъг и е свързан с формули.При наличието на две различни неща, които всъщност са еднакви, то фукциите няма да ми се получават. Благодаря!

Здравей,

най-вероятно проблема идва от разлика в записите.

На снимка 1 имам една колона (снимка 1 позиция 1) в която има N на брой записи, ако използвам Remove Duplicates, най- вероятно следва да получа резуалтата показан в колона I (снимка 1 позиция 2).

Снимка_1

Нека да приложа Remove Duplicates (снимка 2 позици 1) за колона A (снимка 2 позиция 2).

Снимка_2

Какво се случи?

Снимка_3

Определено не това което очаквахме, на снимка 3 позиция 1 и 2 ясно се вижда че Петър се повтаря, както и Ани (снимка 3 позиция 3 и 4).

Защо се получи така, при положение че клетките е записано Петър и Ани, не трябваше, да остане само един запис?

Ами не защото записа е различен.Какво имам предвид? На първия ред е записано "Петър" на втория е записано "Петър ". Във втория запис има интервал, така целия запис не се подразбира като еднакъв на първия в който Петър е записан без интервал.

Така че при Remove duplicates, e много важно записите да са напълно еднакви.

Сетих се за интервал, но какво мога да направя в случая. Тези имена в таблицата фигурират в много шийтове по няколко пъти. Как мога да направя всичките еднакви? Ще пробвам с "Replace", но пак е под въпрос, защото няма как да знам дали интервала е един, два, или повече, когато съм ги записвал. Благодаря за отговора! Поздрави, Жоро

Може за опитате да изчистите излишните интервали с функцията TRIM

Лора Тонева, да супер че подхващаш темата за TRIM, определено функцията TRIM е доста подходяща.

Но е малко тромава за случая когато се изпозлва директно. Имам предвид следното:

Функцията Trim работи по следния начин =Trim(A1), (снимка 1 позиция 1).Изписва се =Trim и съответно в скобите се записва адреса на клетката в която се съдържа текста с излишните интервали (под излишни интервали се разбира естествено, интервалите в началото и в края на пълния текст в клетката - паразитните интервали.Както и вътре в самия текст, ако има повече от един интервал разделящ дадените думи, то излишните се премахват остава само един, който да раздели двата текста).


Какво се случва след изпозването на Trim, имаме клетки в които сме сигурни че нямаме излишни интервали (снимка 2 позиция 1).Тези клетки обаче съдържат формула (снимка 2 позиция 2).

Снимка_2

Трябва да пишем формули и т.н. което си е енергоемко.

Освен това сменяме местоположението на вече въведения текст, защото използвайки формулата, следва да преместим информацията, от една колона в друга, което довежда до триене на колони.

Освен това може би искаме стойносите в клетките да са в текстови стойности, което означава да ги копираме с Ctrl + C, след това да ги поставим с Paste Special (снимка 3 позиция 1), съответно да поставим отново стойностите върху самите формули като Values (снимка 3 позиция 2) и с ОК (снимка 3 позиция 3) с което да потвърдим че въху формулите копираме само стойностите

Снимка_3

Много действия до достигане на искания резултат.


Ето един по-лесен начин.

Нека да вкараме функцията TRIM в един кратък VBA код.

Кода би излглеждал така.

Sub DoTrim()
Dim cell As Range, areaToTrim As Range
Set areaToTrim = Selection.Cells
For Each cell In areaToTrim
    cell = Trim(cell)
Next cell
End Sub

Какво прави кода?

Ами горе долу всички изброени по-горе стъпки който направихме с Trim в среда на Excel.

И все пак какво трябва да направите и какво ще се случи използвайки кода?

Трябва да копирате кода, който споделих по-горе, да го заредите като стандартен VBA код в отделен модул (снимка 4 позиция 1 и 2), след което да слектирате, местата в които искате да изчистите паразитните интервали (снимка 4 позиция 3) и да стартирате кода (снимка 4 позиция 4).

Снимка_4

Готово - снимка 5 позиция 1, вече ги няма паразитните маериали, стойностите са на същото място, не съдържат в себе си формулата Trim.

Снимка_5

Прилагаме Remove Duplicates (снимка 6 позиция 1), за избрания диапазон (снимка 6 позиция 2).

Снимка_6

Остана само един Петър (снимка 7 позиция 1).

Снимка_7


Надявам се да са станали ясни и двата варианта: 1 - ръчния и 2 - автоматизирания.Ако има нещо неясно питайте ще дообесня.


Надявам се да съм бил полезен с отговора.

Благоадаря много, С кода изчистих разликите и вече имам един готов списък без дублирания. Сега ще мога да си добавям нови функции без да се притснявам от евентуални грешки.

Супер радвам се че всичко е сработило.


Вашият отговор

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Регистрация