اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم

** ارجو المساعده فى تحديد الاقام التى تكررت اكثر من 10 مرات فى عمود c  وتحديد عدد تكرارها

*** لا استطيع رفع الملف لمشكله فى النت

تقبلوا وافر تحياتى

**

قام بنشر

السلام عليكم

اخى الحبيب سليم ... جزاك الله كل الخير

حل ممبدع الا انى لا استطبيع زياده الرنج الى 3000

... هل يمكن عمل الرنح كل الخلايا التى بها بيانات فى العمود a

جزاك الله كل الخير

قام بنشر
6 دقائق مضت, ۩◊۩ أبو حنين ۩◊۩ said:

السلام عليكم

اخى الحبيب سليم ... جزاك الله كل الخير

حل ممبدع الا انى لا استطبيع زياده الرنج الى 3000

... هل يمكن عمل الرنح كل الخلايا التى بها بيانات فى العمود a

جزاك الله كل الخير

جرب هذا الملف

بالنسبة الى هذا العدد الكبير يمكن الحل عن طريق الكود

قام بنشر

 

3 دقائق مضت, سليم حاصبيا said:

جرب هذا الملف

بالنسبة الى هذا العدد الكبير يمكن الحل عن طريق الكود

الا يمكن ان نجعل البحث فى الخلايا التى بها بيانات فى العمود  a

قام بنشر

جرب هذا الماكرو

Sub TekrarList()
Application.ScreenUpdating = False
Dim x As Long
Dim dictionary As Object
Dim my_rg As Range

Set dictionary = CreateObject("scripting.dictionary")
Set my_rg = ActiveSheet.Range(Range("A1"), Range("A1").End(xlDown))
ActiveSheet.Range("b:d").ClearContents
Range("b1") = "العناصر المكررة": Range("c1") = "التكرار": Range("d1") = "عدد العناصر المكررة"

On Error Resume Next
For i = 1 To my_rg.Count
x = Application.CountIf(my_rg, my_rg.Cells(i))
If x >= 10 Then
dictionary.Add my_rg.Cells(i).Value, 1
End If
Next

Sheets(1).Range("d2") = dictionary.Count
Sheets(1).Range("b2").Resize(dictionary.Count).Value = _
Application.Transpose(dictionary.keys)
    For m = 1 To dictionary.Count
      ActiveSheet.Cells(m + 1, 3) = Application.CountIf(my_rg, ActiveSheet.Cells(m + 1, 2))
    Next
Application.ScreenUpdating = True


End Sub

 

  • Like 2
قام بنشر
2 ساعات مضت, سليم حاصبيا said:

جرب هذا الماكرو


Sub TekrarList()
Application.ScreenUpdating = False
Dim x As Long
Dim dictionary As Object
Dim my_rg As Range

Set dictionary = CreateObject("scripting.dictionary")
Set my_rg = ActiveSheet.Range(Range("A1"), Range("A1").End(xlDown))
ActiveSheet.Range("b:d").ClearContents
Range("b1") = "العناصر المكررة": Range("c1") = "التكرار": Range("d1") = "عدد العناصر المكررة"

On Error Resume Next
For i = 1 To my_rg.Count
x = Application.CountIf(my_rg, my_rg.Cells(i))
If x >= 10 Then
dictionary.Add my_rg.Cells(i).Value, 1
End If
Next

Sheets(1).Range("d2") = dictionary.Count
Sheets(1).Range("b2").Resize(dictionary.Count).Value = _
Application.Transpose(dictionary.keys)
    For m = 1 To dictionary.Count
      ActiveSheet.Cells(m + 1, 3) = Application.CountIf(my_rg, ActiveSheet.Cells(m + 1, 2))
    Next
Application.ScreenUpdating = True


End Sub

 

كود رائع تشكر استاد سليم حاصبيا

  • Like 1
قام بنشر (معدل)

السلام عليكم

الاخ الجليل سليم

جزاك الله كل الخير والتقدير

كود رائع رائع ... والاضافه " عدد العناصر المكررة " ممتاز

هل يمكن تبديل القيمه 10 الى قيمه خليه ولتكن  F1

 

جزاك الله خيرا

تم تعديل بواسطه ۩◊۩ أبو حنين ۩◊۩
قام بنشر

استبدل الى هذا الماكرو

Sub TekrarList_With_choise()
Application.ScreenUpdating = False
Dim x As Long
Dim dictionary As Object
Dim my_rg As Range
Dim My_number As Integer
My_number = ActiveSheet.[f1]
 If Not IsNumeric(My_number) Or My_number <= 0 Then
 Exit Sub
 Else
 My_number = Int(My_number)
  End If
  If My_number = 0 Then My_number = 1
Set dictionary = CreateObject("scripting.dictionary")
Set my_rg = ActiveSheet.Range(Range("A1"), Range("A1").End(xlDown))
ActiveSheet.Range("b:d").ClearContents
Range("b1") = "العناصر المكررة": Range("c1") = "التكرار": Range("d1") = "عدد العناصر المكررة"

On Error Resume Next
For i = 1 To my_rg.Count
x = Application.CountIf(my_rg, my_rg.Cells(i))
  If My_number >= my_rg.Count Then Exit Sub
If x >= My_number Then
dictionary.Add my_rg.Cells(i).Value, 1
End If
Next

Sheets(1).Range("d2") = dictionary.Count
Sheets(1).Range("b2").Resize(dictionary.Count).Value = _
Application.Transpose(dictionary.keys)
    For m = 1 To dictionary.Count
      ActiveSheet.Cells(m + 1, 3) = Application.CountIf(my_rg, ActiveSheet.Cells(m + 1, 2))
    Next
Application.ScreenUpdating = True


End Sub

 

  • Like 1
قام بنشر

وعليكم السلام

إثراءً للموضوع جرب الكود التالي

Sub Test()
    Dim curRow          As Long
    Dim col             As New Collection
    Dim itm             As Variant
    Dim cnt             As Long
    Dim rng             As Range
    Dim cel             As Range
    
    Const firstRow      As Integer = 1      'رقم صف البداية
    Const dataCol       As Integer = 1      'رقم العمود مصدر البيانات
    Const extractCol    As Integer = 8      'رقم العمود للنتائج المطلوبة
    
    Application.ScreenUpdating = False
        Set rng = Range(Cells(firstRow, dataCol), Cells(Rows.Count, dataCol).End(xlUp))
        On Error Resume Next
            For Each cel In rng
                col.Add Item:=cel.Value, Key:=CStr(cel.Value)
            Next cel
        On Error GoTo 0
        
        curRow = firstRow
        For Each itm In col
            cnt = Application.CountIf(rng, itm)
            If cnt > 10 Then              'عدد مرات التكرار
                Cells(curRow, extractCol).Value = itm
                Cells(curRow, extractCol + 1).Value = cnt
                curRow = curRow + 1
            End If
        Next itm
    Application.ScreenUpdating = True
End Sub

 

  • Like 1
قام بنشر (معدل)

السلام عليكم

اخى العزيز ياسر .. فعلا الاخ الكريم سليم .. قدم حل ممتاز عن طريق المعادلة ... جزاه الله كلالخير والتقدير

الا انى لا استطيع زياده الرنج فى المعادله ...من 30 الى 50000

كما ان العمود لو احتوى حروف .. مثل A5   لا تظهر اى نتيجه

اخى الحبيب لدى استفسار فى الكود الذى اضفته

اريد ان يكون مصدر البيانات التى سيتم التعامل معها ( شيت عام )

وتكون النتيجه المطلوبه فى شيت (حصر التعديلات )

واخيرا عند استخدام الكود يتم مسح البيانات القديمة ووضع البيانات الجديده

كيف ذلك

جزاك الله كل الخير ...

 

 

تم تعديل بواسطه ۩◊۩ أبو حنين ۩◊۩
قام بنشر

السلام عليكم

اخى الحبيب ياسر

مرفق الملف المراد العمل عليه

تعزر رفع الملف الى الموقع ...

http://www.flflh.com/download-86856-حصر

الخليه E3 فى شيت حصر التعديلات تحدد عدد مرات التكرار

الخليه C2  و  D2  الفترة المراد عمل الحصر بينها على اساس العمود E  فى شيت عام

ارجو ان يكون الشرح وافى

تقبل وافر تحياتى

 

 

قام بنشر

وعليكم السلام

الملف غير موجود حاول رفعه على سيرفر المنتدى بعد ضغطه

 

* هناك نقطة جديدة لم تذكرها من قبل ..

الخليه C2  و  D2  الفترة المراد عمل الحصر بينها على اساس العمود E  فى شيت عام  (هل في الخلايا تواريخ ؟؟!!) ولما لم تذكر من البداية كافة التفاصيل ..

قام بنشر

انظر الى المرفق

يمكن استخراج التكرار حسب ما تريد (نص أو أرقام)

لتعمل المعادلة بعد نسخها على العدد الكبير (5000 صف) يجب توسيع النطاق الى A5000  مع استعمال (Ctrl+Shift+enter)للمعادلة لانها معادلة صفيف

الحل في الصفحة Salim من المرفق

TEKRAR COUNT 1.rar

  • Like 1
قام بنشر
في ‏07 ‏يناير, ‏2017 at 18:30, سليم حاصبيا said:

انظر الى المرفق

يمكن استخراج التكرار حسب ما تريد (نص أو أرقام)

لتعمل المعادلة بعد نسخها على العدد الكبير (5000 صف) يجب توسيع النطاق الى A5000  مع استعمال (Ctrl+Shift+enter)للمعادلة لانها معادلة صفيف

الحل في الصفحة Salim من المرفق

TEKRAR COUNT 1.rar

السلام عليكم

جزاك الله خيرا اخى العزيز سليم

تقبل وافر تحياتى وتقديرى

المعادله هى المطلوبه فهلا ... وبعد تطبيقها  ... تم الامر بشكل ممتاذ ...

وكما ذكرت من قبل ... الرنج الكبير بيثقل الملف جدا ....

جزاك الله كل الخير على تعبك ووقت معى

سلمت يداك بكل خير

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information