Სარჩევი
Excel-ის უჯრედში დუბლიკატების პოვნისა და წაშლის სამი გზა არსებობს. უბრალოდ აირჩიეთ ის, რომელიც საუკეთესოდ მუშაობს თქვენთვის.
როცა საქმე ეხება დუბლიკატი მნიშვნელობების ან მწკრივების ამოღებას, Microsoft Excel გთავაზობთ სხვადასხვა ვარიანტების მასივს. მაგრამ როდესაც საქმე ეხება მოცემულ უჯრედში იდენტური ტექსტის ამოღებას, Excel არ იძლევა… არაფერს. არც ხელსაწყოები, არც ფუნქციები, არც ფორმულები, არც არაფერი. ხელს შეგვიშლის თუ არა ჩვენი მიზნის მიღწევაში? არავითარ შემთხვევაში. თუ Excel-ს არ აქვს ის ფუნქცია, რომელიც ჩვენ გვჭირდება, მოდით დავწეროთ საკუთარი :)
როგორ წავშალოთ განმეორებითი სიტყვები Excel-ის უჯრედში
პრობლემა : თქვენ გაქვთ იგივე სიტყვები ან ტექსტის სტრიქონები უჯრედში და გსურთ წაშალოთ მეორე და ყველა შემდგომი გამეორება.
გადაწყვეტა : მომხმარებლის მიერ განსაზღვრული ფუნქცია ან VBA მაკრო.
მომხმარებლის მიერ განსაზღვრული ფუნქცია უჯრედში დუბლიკატების წასაშლელად
უჯრედში დუბლიკატი ტექსტის აღმოსაფხვრელად, შეგიძლიათ გამოიყენოთ მომხმარებლის მიერ განსაზღვრული შემდეგი ფუნქცია (UDF) , სახელად RemoveDupeWords :
ფუნქცია RemoveDupeWords(ტექსტი როგორც სტრიქონი , არჩევითი გამიჯვნა როგორც სტრიქონი = " " ) როგორც სტრიქონი Dim ლექსიკონი როგორც ობიექტი Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) ლექსიკონი .CompareMode = vbTextCompare თითოეული x In Split(ტექსტი, დელიმიტერი) ნაწილი = Trim(x) თუ ნაწილი "" და არა dictionary.Exists(ნაწილი) შემდეგ ლექსიკონი.დაამატე ნაწილი, Nothing End If Next If dictionary.Count > 0 შემდეგ RemoveDupeWords = Join(dictionary.keys,განმსაზღვრელი) Else RemoveDupeWords = "" End If Set dictionary = Nothing End ფუნქციაროგორ ჩავდოთ ფუნქციის კოდი თქვენს სამუშაო წიგნში
ზემოხსენებული კოდის დასამატებლად თქვენს Excel-ში, ეს არის ის, რაც უნდა გააკეთოთ:
- დააჭირეთ Alt + F11 Visual Basic რედაქტორის გასახსნელად.
- მარცხენა პანელზე დააწკაპუნეთ მარჯვენა ღილაკით This Workbook და აირჩიეთ Insert > მოდული .
- ჩასვით ზემოაღნიშნული კოდი Code ფანჯარაში.
დამატებითი ინფორმაციისთვის იხილეთ როგორ ჩასვათ VBA კოდი Excel-ში.
RemoveDupeWords ფუნქციის სინტაქსი
ჩვენს ახლად შექმნილ ფუნქციას უჯრედში დუბლიკატი ტექსტის წასაშლელად აქვს შემდეგი სინტაქსი:
RemoveDupeWords(ტექსტი, [განმსაზღვრელი])სად :
- ტექსტი (აუცილებელია) - სტრიქონი ან უჯრედი, საიდანაც გსურთ წაშალოთ განმეორებითი ტექსტი.
- განმსაზღვრელი (არასავალდებულო) - გამყოფი, რომლითაც გამოყოფილია განმეორებითი ტექსტი. თუ გამოტოვებულია, ინტერვალი გამოიყენება დელიმიტერისთვის.
ფუნქცია არ არის რეგისტრირებული , რაც ნიშნავს, რომ მცირე და დიდი ასოები განიხილება როგორც იგივე სიმბოლოები.
როგორ გამოვიყენოთ RemoveDupeWords ფუნქცია
როდესაც ფუნქციის კოდი დაემატება თქვენს სამუშაო წიგნს, შეგიძლიათ გამოიყენოთ ის თქვენს ფორმულებში ისევე, როგორც Excel-ის ჩაშენებული ფუნქციების გამოყენება.
უბრალოდ დაიწყეთ ფუნქციის სახელის აკრეფა ტოლობის ნიშნის შემდეგ და ის გამოჩნდება ფორმულაში intellisense. ორჯერ დააწკაპუნეთ ფუნქციაზე და გექნებათ იგიჩასმულია საკანში. განსაზღვრეთ არგუმენტები, აკრიფეთ დახურვის ფრჩხილები, დააჭირეთ Enter და თქვენი ფორმულა დასრულდება.
მაგალითად, წაშალოთ დუბლიკატი სიტყვები, რომლებიც გამოყოფილია მძიმით და A2-დან ინტერვალით, შეიყვანეთ ქვემოთ მოცემული ფორმულა B2-ში და შემდეგ გადაიტანეთ ის იმდენი უჯრედში, რამდენიც საჭიროა:
=RemoveDupeWords(A2, ", ")
შედეგად, გექნებათ უნიკალური სიტყვების ან ქვესტრიქონების სია, გამოყოფილი მძიმით და ინტერვალით :
თუ გირჩევნიათ მიიღოთ მძიმით გამოყოფილი სია, მაშინ გამოიყენეთ მხოლოდ მძიმით გამყოფისთვის :
=RemoveDupeWords(A2, ",")
თუ თქვენი წყაროს მონაცემები გამოყოფილია სივრცით , მეორე არგუმენტი უნდა იყოს " " ან გამოტოვებული:
=RemoveDupeWords(A2)
როგორც ნებისმიერი სხვა Excel ფუნქცია, ჩვენი UDF ავტომატურად ხელახლა გამოითვლება წყაროს მონაცემების შეცვლისას, ასე რომ თქვენი შედეგები ყოველთვის განახლებული იქნება.
VBA მაკრო რამდენიმე უჯრედიდან დუბლიკატი ტექსტის ერთდროულად წასაშლელად
თუ თქვენ ცდილობთ წაშალოთ განმეორებითი ტექსტი რამდენიმე უჯრედიდან ერთი ნაბიჯით, მაშინ შეგიძლიათ დარეკოთ RemoveDupeWords ფუნქცია. მ მაკროში. ამ შემთხვევაში, დელიმიტერი არის მყარი კოდირებული და თქვენ მოგიწევთ მაკროს კოდის განახლება ყოველ ჯერზე, როცა დელიმიტერი იცვლება. ალტერნატიულად, შეგიძლიათ დაწეროთ კოდის რამდენიმე ვარიაცია ყველაზე გავრცელებული გამსაზღვრელებისთვის, მაგალითად, ინტერვალი, მძიმე, ან მძიმე და ინტერვალი, და მიანიჭოთ თქვენს მაკროებს მნიშვნელოვანი სახელები, მაგ. RemoveDupesDelimSpace .
მაკროს კოდი ასეთია:
Public Sub RemoveDupeWords2() დაბნელებული უჯრედი, როგორც დიაპაზონი Application.Selection-ის თითოეული უჯრედისთვის. სივრცე. სხვა დელიმიტერის გამოსაყენებლად, შეცვალეთ "," სხვა სიმბოლო(ებ)ით ამ კოდის სტრიქონში: cell.Value = RemoveDupeWords(cell.Value, ", ")
შენიშვნა. იმისათვის, რომ მაკრო იმუშაოს, მისი კოდი და RemoveDupeWords ფუნქციის კოდი უნდა განთავსდეს იმავე მოდულზე.
როგორ გამოვიყენოთ მაკრო
ჩადეთ მაკროს კოდი თქვენს სამუშაო წიგნში ან გახსენით ჩვენი ნიმუშის სამუშაო წიგნი კოდით და შემდეგ შეასრულეთ შემდეგი ნაბიჯები მაკროს გასაშვებად.
- აირჩიეთ უჯრედების დიაპაზონი, საიდანაც გსურთ წაშალოთ განმეორებითი ტექსტი.
- დააჭირეთ Alt + F8, რათა გახსნათ Macro დიალოგური ფანჯარა.
- მაკროების სიაში, აირჩიეთ RemoveDupeWords2 .
- დააწკაპუნეთ Run .
დამატებითი ინფორმაციისთვის იხილეთ როგორ გაუშვით მაკრო Excel-ში.
შენიშვნა. იმის გამო, რომ მაკროს მოქმედება შეუძლებელია , ჩვენ გირჩევთ შეინახოთ თქვენი სამუშაო წიგნი მაკროს გამოყენებამდე. ამ გზით, თუ რამე არასწორედ მოხდება, შეგიძლიათ უბრალოდ დახუროთ და ხელახლა გახსნათ სამუშაო წიგნი და დაბრუნდებით ზუსტად იქ, სადაც იყავით. ან შეგიძლიათ უბრალოდ გააკეთოთ სამუშაო ფურცელ(ებ)ის ასლი, რომელზეც შესაძლოა გავლენა იქონიოს მაკრომ.
როგორ ამოიღოთ დუბლიკატი სიმბოლოები უჯრედში
პრობლემა : თქვენ გაქვთ ერთი და იგივე სიმბოლოს მრავალი შემთხვევა უჯრედში, მაშინ როცა თითოეულიუჯრედი უნდა შეიცავდეს მოცემული სიმბოლოს მხოლოდ ერთ შემთხვევას.
გადაწყვეტა : მომხმარებლის მიერ განსაზღვრული ფუნქცია ან VBA მაკრო.
მომხმარებლის მიერ განსაზღვრული ფუნქცია განმეორებითი სიმბოლოების წასაშლელად
უჯრედში დუბლირებული სიმბოლოების წასაშლელად, სადაც მხოლოდ პირველი შემთხვევები ინახება, შეგიძლიათ გამოიყენოთ მომხმარებლის მიერ განსაზღვრული შემდეგი ფუნქცია, სახელად RemoveDupeChars :
ფუნქცია RemoveDupeChars(ტექსტი როგორც სტრიქონი) როგორც სტრიქონი Dim ლექსიკონი, როგორც ობიექტი Dim char როგორც სიმებიანი Dim შედეგი როგორც სიმებიანი ნაკრები ლექსიკონი = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(ტექსტი) char = Mid(ტექსტი, i, 1 ) თუ Not dictionary.Exists(char) მაშინ dictionary.Add char, Nothing result = შედეგი & char ბოლო თუ შემდეგი RemoveDupeChars = შედეგი ნაკრები ლექსიკონი = არაფერი დასრულებული ფუნქციაფუნქციის კოდის თქვენს სამუშაო წიგნში ჩასასმელად, ნაბიჯები ზუსტად იგივეა, რაც წინა მაგალითში.
RemoveDupeChars ფუნქციის სინტაქსი
ამ მორგებული ფუნქციის სინტაქსი ისეთივე მარტივია, როგორც ეს შეიძლება იყოს - საჭიროა მხოლოდ ერთი არგუმენტი:
RemoveDupeChars(ტექსტი)სადაც ტექსტი არის სტრიქონი ან უჯრედი, საიდანაც გსურთ დუბლიკატი სიმბოლოების წასაშლელად.
ფუნქცია მცირე რეგისტრის მგრძნობიარეა და განიხილავს პატარა და დიდ ასოებს, როგორც სხვადასხვა სიმბოლოებს.
როგორ გამოვიყენოთ RemoveDupeChars ფუნქცია
ყველაფერი, რაც ჩვენ ვთქვით RemoveDupeWords-ის გამოყენების შესახებ, მართალია RemoveDupeChars -ისთვის. ასე რომ, წასვლის გარეშეძალიან ბევრია თეორიაში, მოდით პირდაპირ მაგალითზე გადავიდეთ.
A სვეტიდან A2-დან დაწყებული დუბლიკატი სიმბოლოების წასაშლელად, შეიყვანეთ ეს ფორმულა B2-ში და დააკოპირეთ:
=RemoveDupeChars(A2)
როგორც ხედავთ ქვემოთ მოცემულ სურათზე, ფუნქცია წარმატებით უმკლავდება სიმბოლოების სხვადასხვა ტიპებს ასოების, ციფრების და სპეციალური სიმბოლოების ჩათვლით:
რჩევა. თუ თქვენი სიმბოლოები ერთმანეთისგან გამოყოფილია გამიმღები , როგორიცაა ინტერვალი, მძიმე ან დეფისი, გამოიყენეთ RemoveDupeWords ფუნქცია, როგორც ეს ნაჩვენებია წინა მაგალითში.
VBA მაკრო იგივე სიმბოლოების ამოსაღებად უჯრედიდან
როგორც RemoveDupeWords , RemoveDupeChars ფუნქცია ასევე შეიძლება გამოიძახოთ მაკროდან:
საჯარო Sub RemoveDupeChars2() დაბნელებული უჯრედი, როგორც დიაპაზონი Application.Selection-ის თითოეული უჯრედისთვის. კოდი.შენიშვნა. იმისათვის, რომ მაკრო იმუშაოს, მისი კოდი და RemoveDupeChars UDF კოდი უნდა განთავსდეს იმავე მოდულზე VBA რედაქტორში.
როგორ გამოვიყენოთ მაკრო
თუ ვივარაუდებთ, რომ თქვენ უკვე ჩადეთ მაკროს კოდი თქვენს სამუშაო წიგნში ან გახსენით ჩვენი ნიმუშის სამუშაო წიგნი, რომელიც შეიცავს კოდს, გაუშვით მაკრო ამ გზით.
- აირჩიეთ უჯრედების დიაპაზონი, საიდანაც გსურთ ამოიღოთ განმეორებითი სიმბოლოები.
- დააჭირეთ Alt + F8, რათა გახსნათ დიალოგი Macro ველი.
- მაკროს სიაში აირჩიეთ RemoveDupeChars2 .
- დააწკაპუნეთ Run .
წაშალეთ დუბლიკატი ქვესტრიქონები Ultimate Suite-ით
ამ გაკვეთილის დასაწყისში აღინიშნა, რომ Microsoft Excel-ს არ აქვს ჩაშენებული ფუნქცია უჯრედში დუბლიკატების წასაშლელად. მაგრამ ჩვენი Ultimate Suite ასეა!
თქვენ შეგიძლიათ იპოვოთ ის Duplicate Remover ჩამოსაშლელ მენიუში Ablebits Data ჩანართში, Dedupe ჯგუფი. თუ Remove Duplicate Substrings ვარიანტი არ გამოჩნდება თქვენს Excel-ში, დარწმუნდით, რომ დაინსტალირებული გაქვთ Ultimate Suite-ის უახლესი ვერსია (უფასო საცდელი ვერსია შეგიძლიათ ჩამოტვირთოთ აქ).
<. 3>
გამეორებული სიტყვების ან ტექსტის ამოსაღებად მრავალი უჯრედიდან 5 წამში (წამი ყოველ ნაბიჯზე :), ეს არის ის, რაც უნდა გააკეთოთ:
- აირჩიეთ თქვენი წყაროს მონაცემები და გაუშვით წაშალეთ Duplicate Substrings ხელსაწყო.
- მიუთითეთ განმსაზღვრელი .
- განსაზღვრეთ, განიხილოთ თუ არა მიმდევრული დელიმიტერები როგორც ერთი (ნაგულისხმევი).
- აირჩიეთ, შეასრულოთ თუ არა რეზერვებზე მგრძნობიარე ან შემთხვევისადმი მგრძნობიარე ძიება.
- დააწკაპუნეთ წაშლა .
შესრულებულია! VBA-სთან ან ფორმულებთან ჩხუბი არ არის, მხოლოდ სწრაფი და ზუსტი შედეგები.
ამ გასაოცარი დანამატის შესახებ მეტის გასაგებად, გთხოვთ, ეწვიოთ მის მთავარ გვერდს. ან კიდევ უკეთესი, ჩამოტვირთეთ შეფასების ვერსია ქვემოთ და სცადეთ!
აი როგორ ამოიღოთ დუბლიკატი ტექსტი უჯრედში.მადლობას გიხდით წაკითხვისთვის და იმედი მაქვს, რომ მომავალ კვირას გნახავთ ჩვენს ბლოგზე!
ხელმისაწვდომი ჩამოტვირთვები
მაგალითები უჯრედში დუბლიკატების წასაშლელად (ფაილი .xlsm)
Ultimate Suite 14 -დღის სრულად ფუნქციონალური ვერსია (.exe ფაილი)