Как да разбера къде греша, при използването на Remove Duplicates?
Става въпрос с един списък с много имена, които се повтарят. С опцията "Remove duplicates" премахвам повтарящите се. Но забелязвам имена, които си стоят и не са премахнати. Отделям ги на друго място и пробвам, но пак не става. Горе от падащото меню за формата на клетката давам Text и за двете и пак същата работа, връщам General и отново без ефект. Копирам ги и отивам в нов шийт и същата работа. Без резултат и като ги сложа в нова таблица. Започнах да се притеснявам, относно зрението ми, или дали въобще мога да пиша правилно, но така и е видях грешка, колкото и да се вторачвах. Списъка е много дълъг и е свързан с формули.При наличието на две различни неща, които всъщност са еднакви, то фукциите няма да ми се получават. Благодаря!
Здравей,
най-вероятно проблема идва от разлика в записите.
На снимка 1 имам една колона (снимка 1 позиция 1) в която има N на брой записи, ако използвам Remove Duplicates, най- вероятно следва да получа резуалтата показан в колона I (снимка 1 позиция 2).
Нека да приложа Remove Duplicates (снимка 2 позици 1) за колона A (снимка 2 позиция 2).
Какво се случи?
Определено не това което очаквахме, на снимка 3 позиция 1 и 2 ясно се вижда че Петър се повтаря, както и Ани (снимка 3 позиция 3 и 4).
Защо се получи така, при положение че клетките е записано Петър и Ани, не трябваше, да остане само един запис?
Ами не защото записа е различен.Какво имам предвид? На първия ред е записано "Петър" на втория е записано "Петър ". Във втория запис има интервал, така целия запис не се подразбира като еднакъв на първия в който Петър е записан без интервал.
Така че при Remove duplicates, e много важно записите да са напълно еднакви.
Сетих се за интервал, но какво мога да направя в случая. Тези имена в таблицата фигурират в много шийтове по няколко пъти. Как мога да направя всичките еднакви? Ще пробвам с "Replace", но пак е под въпрос, защото няма как да знам дали интервала е един, два, или повече, когато съм ги записвал. Благодаря за отговора! Поздрави, Жоро
Може за опитате да изчистите излишните интервали с функцията TRIM
Лора Тонева, да супер че подхващаш темата за TRIM, определено функцията TRIM е доста подходяща.
Но е малко тромава за случая когато се изпозлва директно. Имам предвид следното:
Функцията Trim работи по следния начин =Trim(A1), (снимка 1 позиция 1).Изписва се =Trim и съответно в скобите се записва адреса на клетката в която се съдържа текста с излишните интервали (под излишни интервали се разбира естествено, интервалите в началото и в края на пълния текст в клетката - паразитните интервали.Както и вътре в самия текст, ако има повече от един интервал разделящ дадените думи, то излишните се премахват остава само един, който да раздели двата текста).
Какво се случва след изпозването на Trim, имаме клетки в които сме сигурни че нямаме излишни интервали (снимка 2 позиция 1).Тези клетки обаче съдържат формула (снимка 2 позиция 2).
Трябва да пишем формули и т.н. което си е енергоемко.
Освен това сменяме местоположението на вече въведения текст, защото използвайки формулата, следва да преместим информацията, от една колона в друга, което довежда до триене на колони.
Освен това може би искаме стойносите в клетките да са в текстови стойности, което означава да ги копираме с Ctrl + C, след това да ги поставим с Paste Special (снимка 3 позиция 1), съответно да поставим отново стойностите върху самите формули като Values (снимка 3 позиция 2) и с ОК (снимка 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).
Готово - снимка 5 позиция 1, вече ги няма паразитните маериали, стойностите са на същото място, не съдържат в себе си формулата Trim.
Прилагаме Remove Duplicates (снимка 6 позиция 1), за избрания диапазон (снимка 6 позиция 2).
Остана само един Петър (снимка 7 позиция 1).
Надявам се да са станали ясни и двата варианта: 1 - ръчния и 2 - автоматизирания.Ако има нещо неясно питайте ще дообесня.
Надявам се да съм бил полезен с отговора.
Благоадаря много, С кода изчистих разликите и вече имам един готов списък без дублирания. Сега ще мога да си добавям нови функции без да се притснявам от евентуални грешки.
Супер радвам се че всичко е сработило.