اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

  • أفضل إجابة
قام بنشر

جرب هذا الكود

Option Explicit

Sub get_Prof_names()
  Dim sh As Worksheet, Rg As Range
  Dim i%, Yer%
  Dim Salim As Object
  
  Set Salim = CreateObject("Scripting.Dictionary")
  Set sh = Sheets("sheet1")
  Set Rg = sh.Range("G3").CurrentRegion
 
 If Rg.Rows.Count > 1 Then _
    Rg.Offset(1).Resize(Rg.Rows.Count - 1).Clear
 
 Yer = sh.Range("G1"): i = 2
 
 Do Until sh.Cells(i, 1) = vbNullString
      If Year(Cells(i, 2)) = Yer Then
        Salim(Cells(i, 1).Value) = vbNullString
      End If
  i = i + 1
 Loop
 If Salim.Count Then
    With sh.Range("G4").Resize(Salim.Count)
      .Value = Application.Transpose(Salim.Keys)
      .Borders.LineStyle = 1
      .Font.Bold = True: .Font.Size = 16
      .InsertIndent 1: .Interior.ColorIndex = 35
    End With
 End If
End Sub

الملف مرفق

 

Prof_names.xlsm

  • Like 2
  • Thanks 2
قام بنشر

ممتازة منك صديقي رائد (لكنها تدرج المكرر في حال وجوده)

هذه معادلة احرى (بردو تدرج المكرر في حال وجوده)

(سبق وان قلت ان استعمال الدالة  IFERROR ) يفضل عدم استعمالها

=IF(ROWS($A$1:A1)>SUMPRODUCT(--(YEAR($B$2:$B$50)=$G$1)),"",INDEX($A$2:$A$50,SMALL(IF($A$2:$A$50<>"",IF(YEAR($B$2:$B$50)=$G$1,ROW($A$2:$A$50)-ROW($A$2)+1)),ROWS($A$1:A1))))

اذا لم نتعمل معك استبدل الفاصلة "," بفاصلة منقوطة ";" مع (Ctrl+Shift+Enter)

Prof_names.xlsm

 

 

  • Like 1
  • Thanks 2

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