როგორ გამოვყოთ დუბლიკატი ტექსტი / სიტყვები Excel უჯრედში

  • გააზიარეთ ეს
Michael Brown

Სარჩევი

გაკვეთილი გვიჩვენებს, თუ როგორ უნდა მონიშნოთ დუბლიკატი სიტყვები ან ტექსტური სტრიქონები უჯრედში VBA-ს გამოყენებით.

Excel-ის პირობითი ფორმატირება შესაძლებელს ხდის დუბლიკატების ხაზგასმას ყველა შესაძლო გზით, რის შესახებაც შეგიძლიათ იფიქროთ: პირველი გამოვლინებით ან მის გარეშე, ერთ სვეტში ან მრავალ სვეტში, თანმიმდევრული დუბლიკატი უჯრედები და მთელი რიგები, რომლებიც ეფუძნება საკვანძო სვეტის იდენტურ მნიშვნელობებს. მაგრამ, როგორც ყოველთვის, არის "მაგრამ". პირობითი ფორმატირების წესები მუშაობს უჯრედის დონეზე, ხოლო თქვენ შეიძლება მონიშნოთ დუბლიკატი ტექსტი და არა მთლიანი უჯრედები. ეს შეიძლება გაკეთდეს მხოლოდ მაკროებით. მაშინაც კი, თუ თქვენ არ გაქვთ რაიმე გამოცდილება VBA-სთან, გთხოვთ, ნუ იჩქარებთ ამ გვერდის დახურვას. აქ ნახავთ გამოსაყენებლად მზა კოდის მაგალითებს და დეტალურ ინსტრუქციებს, თუ როგორ გამოიყენოთ ისინი თქვენს სამუშაო ფურცლებში.

    მონიშნეთ დუბლიკატი სიტყვები უჯრედში, რომელიც იგნორირებას უკეთებს ტექსტს

    ეს მაგალითი გვიჩვენებს, თუ როგორ უნდა დაჩრდილოთ დუბლიკატი სიტყვები ან ტექსტური სტრიქონები უჯრედში წითელი შრიფტის ფერით, როგორც ეს ნაჩვენებია ქვემოთ მოცემულ სურათზე. გთხოვთ გაითვალისწინოთ, რომ მცირე და დიდი ასოები განიხილება როგორც იგივე სიმბოლოები. მაგალითად, ფორთოხალი , ნარინჯისფერი და ნარინჯისფერი ითვლება ერთსა და იმავე სიტყვად.

    მაკროს კოდი შემდეგია:

    Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "შეიყვანეთ დელიმიტერი, რომელიც გამოყოფს მნიშვნელობებს უჯრედში" , "განმსაზღვრელი", ", " ) თითოეული უჯრედისთვისApplication.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False) შემდეგი ბოლო Sub Sub HighlightDupeWordsInCell(უჯრედი როგორც დიაპაზონი, არჩევითი გამიჯვნა როგორც სტრიქონი = " " , სურვილისამებრ CaseSensitive როგორც Boolean = True ) მბზინავი ტექსტი, როგორც სტრიქონის ბუნდოვანი სიტყვა ( როგორც) სტრიქონი Dim wordIndex, matchCount, positionInText როგორც მთელი რიცხვი, თუ CaseSensitive, მაშინ სიტყვები = Split(Cell.Value, Delimiter) სხვა სიტყვები = Split(LCase(Cell.Value), Delimiter) ბოლოს If for wordIndex = LBound (სიტყვები) UBound (სიტყვები) - 1 სიტყვა = სიტყვა(wordIndex) matchCount = 0 შემდეგიWordIndex = wordIndex + 1 To UBound (სიტყვები) If word = words(nextWordIndex) მაშინ matchCount = matchCount + 1 End If Next nextWordIndex თუ matchCount > 0 შემდეგ ტექსტი = "" ინდექსისთვის = LBound (სიტყვები) To UBound (სიტყვები) ტექსტი = ტექსტი & words(Index) If (words(Index) = სიტყვა) then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & გამიჯვნა შემდეგი ბოლო If Next wordIndex End Sub

    მოინიშნეთ დუბლიკატი ტექსტი უჯრედში, რომელიც მგრძნობიარეა რეგისტრის მიმართ

    უმეტეს შემთხვევაში, Excel-ში ტექსტურ ჩანაწერებთან მუშაობისას ჩვენ ვაპირებთ უგულებელვყოთ ასოების ასოები. თუმცა, გარკვეულ პირობებში, ტექსტის შემთხვევას აქვს მნიშვნელობა. მაგალითად, თუ საქმე გაქვთ ID-ებთან, პაროლებთან ან ამ ტიპის სხვა ჩანაწერებთან, სტრიქონები, როგორიცაა 1-AA , 1-aa და 1-Aa არ არის დუბლიკატები და არ უნდა იყოს ხაზგასმული:

    ამ შემთხვევაში,გამოიყენეთ კოდის შემდეგი ვერსია:

    Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "შეიყვანეთ დელიმიტერი, რომელიც გამოყოფს მნიშვნელობებს უჯრედში" , "განმსაზღვრელი", ", " ) თითოეულისთვის Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True) შემდეგი დასასრული Sub Sub HighlightDupeWordsInCell(უჯრედი როგორც დიაპაზონი, არჩევითი გამიჯვნა როგორც სტრიქონი = " " , სურვილისამებრ CaseSensitive როგორც ლოგიკური = True ) მბზინავი ტექსტი, როგორც სიმებიანი სიბნელე სიტყვა როგორც სტრიქონი Dim wordIndex, matchCount, positionInText როგორც მთელი რიცხვი If CaseSensitive then words = Split(Cell.Value, Delimiter) სხვა სიტყვები = Split(LCase(Cell.Value), Delimiter) ბოლოს If for wordIndex = LBound (სიტყვები) To UBound ( სიტყვები) - 1 სიტყვა = სიტყვები(wordIndex) matchCount = 0 შემდეგიWordIndex = wordIndex + 1 To UBound (სიტყვები) If word = words(nextWordIndex) მაშინ matchCount = matchCount + 1 End If Next nextWordIndex თუ matchCount > 0 შემდეგ ტექსტი = "" ინდექსისთვის = LBound (სიტყვები) To UBound (სიტყვები) ტექსტი = ტექსტი & words(Index) If (words(Index) = სიტყვა) then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Next End End If Next wordIndex End Sub

    როგორ გამოვიყენოთ მაკროები Excel-ში დუბლიკატები სიტყვების ხაზგასასმელად

    თუ თქვენ ხართ დამწყები VBA-ს გამოყენებისას, ქვემოთ მოცემული ნაბიჯ-ნაბიჯ ინსტრუქციები კომფორტულად გაგაცნობთ . გამოცდილ მომხმარებლებს შეუძლიათუბრალოდ აირჩიეთ ჩამოტვირთვის ბმული და გამოტოვეთ დანარჩენი :)

    დაამატეთ კოდი თქვენს სამუშაო წიგნში

    თქვენ დაიწყებთ მაკროს კოდის ჩასმა Excel-ის სამუშაო წიგნში. აი როგორ:

    1. გახსენით სამუშაო წიგნი, სადაც გსურთ მონიშნოთ dupes.
    2. დააჭირეთ Alt + F11 Visual Basic რედაქტორის გასახსნელად.
    3. მარცხენა პანელზე, დააწკაპუნეთ მარჯვენა ღილაკით This Workbook და აირჩიეთ Insert > Module კონტექსტური მენიუდან.
    4. ჩასვით კოდი კოდის ფანჯარაში.
    5. მაკროს შემდგომი გამოყენებისთვის შესანახად, დარწმუნდით, რომ შეინახეთ სამუშაო წიგნი მაკრო ჩართული .xlsm ფაილად.

    ალტერნატიულად, შეგიძლიათ ჩამოტვირთოთ ჩვენი სამუშაო წიგნის ნიმუში და გაუშვათ მაკრო იქიდან. სამუშაო წიგნის ნიმუში შეიცავს შემდეგ მაკროებს:

    • HighlightDupesCaseInsensitive - აფერადებს დუბლიკატებს უჯრედში ასოს ასოს უგულებელყოფით.
    • HighlightDupesCaseSensitive - ხაზგასმულია იტყუება უჯრედში ასოების ასოების გათვალისწინებით.

    დამატებითი ინფორმაციისთვის იხილეთ როგორ ჩავსვათ VBA კოდი Excel-ში.

    გაუშვით მაკრო

    კოდით დაემატა თქვენს სამუშაო წიგნს ან ჩვენი ნიმუშის ფაილის გადმოტვირთვა და გახსნა, გაუშვით მაკრო შემდეგნაირად:

    1. თქვენს სამუშაო ფურცელში აირჩიეთ ის უჯრედები, სადაც გსურთ მონიშნოთ ტექსტის დუბლიკატი. ეს შეიძლება იყოს ერთი დიაპაზონი ან რამდენიმე არამიმდებარე დიაპაზონი.
    2. დააჭირეთ Alt + F8 .
    3. აირჩიეთ თქვენთვის საინტერესო მაკრო და დააწკაპუნეთ Run .

    4. მაკრო მოგთხოვთ მიუთითოთ დელიმიტერირომელიც გამოყოფს მნიშვნელობებს არჩეულ უჯრედებში. წინასწარ დაყენებული დელიმიტერი (მძიმე და ინტერვალი ჩვენს შემთხვევაში) ავტომატურად გამოჩნდება შეყვანის ველში. თქვენი საჭიროებიდან გამომდინარე, შეგიძლიათ დატოვოთ ნაგულისხმევი დელიმიტერი ან აკრიფოთ სხვა და შემდეგ დააწკაპუნოთ OK.

    ერთი წამის შემდეგ, ყველა დუბლიკატი სტრიქონი არჩეულში უჯრედები დაჩრდილული იქნება წითელ ფერში (ან შრიფტის ნებისმიერი ფერი მითითებულია თქვენს კოდში).

    რჩევა. უჯრედში დუბლიკატების სწრაფად მოსაშორებლად, შეგიძლიათ გამოიყენოთ Remove Duplicate Substrings, ერთ-ერთი მრავალჯერადი დაზოგვის ხელსაწყო, რომელიც შედის ჩვენს Ultimate Suite-ში.

    როგორ დაარეგულიროთ კოდი თქვენს საჭიროებებზე

    0>ამ გამოყენების შენიშვნებით და VBA-ს ძალიან საბაზისო ცოდნით (ან უბრალოდ ქვემოთ მოცემული ინსტრუქციების ყურადღებით დაკვირვებით), შეგიძლიათ მარტივად შეცვალოთ კოდები თქვენი საჭიროებების ზუსტად შესაბამისად.

    განთავსება იმავე მოდულზე

    როგორც შეამჩნევთ, ორივე მაკრო ( HighlightDupesCaseSensitive და HighlightDupesCaseInsensitive ) მოუწოდებს HighlightDupeWordsInCell ფუნქციას. განსხვავება ზემოთ მოცემულ ორ მაკროს შორის არის მხოლოდ მე-3 პარამეტრში (CaseSensitive), რომელიც გადაცემულია აღნიშნულ ფუნქციაზე.

    შემთხვევით სენსიტიური ძიებისთვის ის დაყენებულია TRUE-ზე:

    Call HighlightDupeWordsInCell(Cell, Delimiter, True)

    შესანიშნავი რეესტრის ძებნისთვის, ის დაყენებულია FALSE-ზე:

    Call HighlightDupeWordsInCell(Cell, Delimiter, False)

    იმისთვის, რომ მაკრო იმუშაოს, HighlightDupeWordsInCell ფუნქციის კოდი უნდა იყოს განთავსებული. იგივე მოდული, როგორცმაკროები.

    განმსაზღვრელი

    როდესაც გაშვება, მაკრო მოგთხოვთ მიუთითოთ დელიმიტერი, რომელიც გამოყოფს სიტყვებს/სტრიქონებს არჩეულ უჯრედებში. ნაგულისხმევი დელიმიტერი არის მძიმე და ინტერვალი (", ") და ის წინასწარ არის დაყენებული InputBox-ში:

    Delimiter = InputBox("Specify the delimiter that separates values in a cell", "Delimiter", ", ")

    თქვენს კოდში შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა სიმბოლო(ები) როგორც წინასწარ განსაზღვრული დელიმიტერი.

    ფერი

    ნაგულისხმევად, HighlightDupeWordsInCell ფუნქცია დუბლიკატდება შრიფტის წითელ ფერში. ფერი განისაზღვრება ამ ხაზში:

    Cell.Characters(positionInText, Len(word)).Font.Color = vbRed

    აქ vbRed არის ერთგვარი VBA ფერის მუდმივი. დუპების სხვა ფერში საჩვენებლად, შეგიძლიათ vbRed შეცვალოთ სხვა მუდმივით, როგორიცაა vbGreen, vbYellow, vbBlue და ა.შ. T მხარდაჭერილი ფერის მუდმივების სია შეგიძლიათ იხილოთ აქ.

    ეს არის როგორ გამოვყოთ დუბლიკატი სიტყვები Excel უჯრედებში. მადლობას გიხდით წაკითხვისთვის და იმედი მაქვს, რომ მომავალ კვირას გნახავთ ჩვენს ბლოგზე!

    ხელმისაწვდომი ჩამოტვირთვები

    კოდის მაგალითები უჯრედში დუბლიკატების გამოსაყოფად (.xlsm ფაილი)

    Ultimate კომპლექტი 14-დღიანი სრულად ფუნქციონალური ვერსია (.exe ფაილი)

    მაიკლ ბრაუნი არის ტექნოლოგიის ერთგული ენთუზიასტი, რომელსაც აქვს გატაცება პროგრამული ინსტრუმენტების გამოყენებით რთული პროცესების გამარტივებისთვის. ტექნოლოგიურ ინდუსტრიაში ათწლეულზე მეტი გამოცდილებით, მან დახვეწა თავისი უნარები Microsoft Excel-სა და Outlook-ში, ასევე Google Sheets-სა და Docs-ში. მაიკლის ბლოგი ეძღვნება თავისი ცოდნისა და გამოცდილების სხვებს გაზიარებას, ადვილად მისაწვდომ რჩევებსა და გაკვეთილებს პროდუქტიულობისა და ეფექტურობის გასაუმჯობესებლად. მიუხედავად იმისა, გამოცდილი პროფესიონალი ხართ თუ დამწყები, მაიკლის ბლოგი გთავაზობთ ღირებულ შეხედულებებსა და პრაქტიკულ რჩევებს ამ აუცილებელი პროგრამული ხელსაწყოებიდან მაქსიმალური სარგებლობის მისაღებად.