ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
7 visibility
موضوع: آفیس توسط:

همه در یک زمان به حذف ورودی های تکراری از لیست ورودی های متنی نیاز دارند. فرض کنید مقادیر متنی را در ستون A یک کاربرگ دارید و آنها برای حدود 500 سطر اجرا می شوند. اگر می خواهید موارد تکراری موجود در لیست را حذف کنید، ممکن است به دنبال ساده ترین راه برای انجام آن باشید. در واقع چندین راه وجود دارد که می توانید این کار را در اکسل انجام دهید.

با استفاده از ابزار Delete Duplicates

شاید ساده ترین روش این باشد که داده هایی را انتخاب کنید که می خواهید موارد تکراری را از آنها حذف کنید و سپس تب Data را در نوار نمایش دهید. روی ابزار Remove Duplicates در گروه Data Tools کلیک کنید. اکسل کادر محاوره ای Remove Duplicates را نمایش می دهد.

نکته جالب در مورد کادر محاوره ای Remove Duplicates این است که نام هر ستون را در داده های شما فهرست می کند. (این ابزار فرض می کند که شما برچسب های عنوان را در ردیف اول داده های خود دارید.) سپس می توانید مطمئن شوید که یک علامت تیک در کنار هر ستونی که می خواهید برای موارد تکراری بررسی شود وجود دارد. هنگامی که روی دکمه OK کلیک می کنید، داده های شما تجزیه و تحلیل شده و ردیف های تکراری حذف می شوند. (باز هم، موارد تکراری بر اساس ستون های انتخاب شده در کادر محاوره ای Remove Duplicates تعیین می شوند.)

استفاده از فیلترینگ داده ها

روش دستی دیگر استفاده از فیلتر کردن داده ها برای تعیین مقادیر منحصر به فرد است. اطمینان حاصل کنید که ستون دارای یک برچسب در بالای آن است، سپس یک سلول در ستون را انتخاب کنید. تب Data روبان را نمایش دهید و در گروه Sort & Filter روی Advanced کلیک کنید. از کنترل های موجود در کادر محاوره ای به دست آمده استفاده کنید تا مشخص کنید که می خواهید مقادیر منحصربه فرد را در مکان دیگری که مشخص می کنید کپی کنید.

با استفاده از یک فرمول

همچنین می توانید از یک فرمول برای تعیین دستی موارد تکراری در لیست استفاده کنید. مقادیر موجود در ستون را مرتب کنید و سپس فرمول زیر را در سلول B2 وارد کنید:

=IF(A2=A1,"Duplicate","")

فرمول را در تمام سلول های ستون B که دارای مقدار متناظر در ستون A هستند کپی کنید. همه مقادیر ستون B را انتخاب کنید و Ctrl+C را فشار دهید . از Paste Special برای چسباندن فقط مقادیر در همان سلول های انتخاب شده استفاده کنید. اکنون فرمول ها را به نتایج آنها تبدیل کرده اید. دو ستون را بر اساس محتویات ستون B مرتب کنید و تمام ردیف های تکراری شما در یک ناحیه قرار می گیرند. این ردیف ها را حذف کنید، و لیست تمام شده خود را از مقادیر منحصر به فرد خواهید داشت.

استفاده از ماکرو

رویکردهای دستی سریع و آسان هستند، اما اگر به طور معمول مجبور به حذف مقادیر تکراری از یک ستون هستید، یک ماکرو ممکن است سبک شما باشد. ماکرو زیر مانند روش دستی قبلی به فیلتر کردن داده ها متکی است:

Sub CreateUniqueList()
    Dim rData As Range
    Dim rTemp As Range

    Set rData = Range(Range("a1"), Range("A1048576").End(xlUp))
    rData.EntireColumn.Insert
    Set rTemp = rData.Offset(0, -1)
    rData.AdvancedFilter _
        Action:=xlFilterCopy, _
        CopyToRange:=rTemp, _
        Unique:=True

    rTemp.EntireColumn.Copy _
        rData.EntireColumn
    Application.CutCopyMode = False
    rTemp.EntireColumn.Delete
    Set rData = Nothing
    Set rTemp = Nothing
End Sub

ماکرو یک ستون موقت ایجاد می کند، از فیلتر پیشرفته برای کپی کردن مقادیر منحصر به فرد در آن ستون استفاده می کند، سپس ستون داده اصلی را حذف می کند. نتیجه فقط مقادیر منحصربه فرد در ستون A است. اگر نمی خواهید ماکرو شما از ویژگی فیلتر کردن داده اکسل استفاده کند، ماکرو بسیار کوتاه تر زیر این کار را انجام می دهد:

Sub RemoveDups()
    Dim rData As Range

    Set rData = Range(Range("a1"), Range("A1048576").End(xlUp))
    rData.RemoveDuplicates Columns:=Array(1), Header:=xlYes
End Sub

کلید در این ماکرو استفاده از روش RemoveDuplicates است که به آرایه ای متکی است که شامل شماره ستون هایی است که می خواهید برای موارد تکراری بررسی کنید. ماکرو نشان داده شده در اینجا فقط روی محتویات ستون A عمل می کند، اما می توانید به راحتی آن را تغییر دهید تا روی داده ها در بیش از یک ستون کار کند. تنها کاری که باید انجام دهید این است که rData را طوری تغییر دهید که نشان دهنده ناحیه داده بزرگتر باشد و سپس پارامتر ستون ها را طوری تغییر دهید که به ستون هایی که می خواهید بررسی شوند اشاره کند:

    rData.RemoveDuplicates Columns:=Array(1,4), Header:=xlYes

یکی دیگر از رویکردهای مبتنی بر کلان این است که کد خود را برای بررسی مقادیر موجود در مجموعه داده به این روش توسعه دهید:

Sub DelDups()
    Dim rngSrc As Range
    Dim NumRows As Integer
    Dim ThisRow As Integer
    Dim ThatRow As Integer
    Dim ThisCol As Integer
    Dim J As Integer, K As Integer

    Application.ScreenUpdating = False
    Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)

    NumRows = rngSrc.Rows.Count
    ThisRow = rngSrc.Row
    ThatRow = ThisRow + NumRows - 1
    ThisCol = rngSrc.Column

    Start wiping out duplicates
    For J = ThisRow To (ThatRow - 1)
        If Cells(J, ThisCol) > "" Then
            For K = (J + 1) To ThatRow
                If Cells(J, ThisCol) = Cells(K, ThisCol) Then
                    Cells(K, ThisCol) = ""
                End If
            Next K
        End If
    Next J

    Remove cells that are empty
    For J = ThatRow To ThisRow Step -1
        If Cells(J, ThisCol) = "" Then
            Cells(J, ThisCol).Delete xlShiftUp
        End If
    Next J
    Application.ScreenUpdating = True
End Sub

ماکرو روی انتخابی که قبل از فراخوانی انتخاب می کنید کار می کند. بنابراین، اگر نیاز به حذف سلول های تکراری از محدوده A2:A974 دارید، به سادگی آن محدوده را انتخاب کرده و سپس ماکرو را اجرا کنید. وقتی ماکرو کامل شد، سلول های تکراری و سلول های خالی حذف می شوند.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

82 نفر آنلاین
0 عضو و 82 مهمان در سایت حاضرند
بازدید امروز: 12278
بازدید دیروز: 8462
بازدید کل: 15422967
...