contact@exceltr.com

ExcelTR - Microsoft Excel Eğitim Sitesi

Görsel Video Microsoft Excel Eğitim Sitesi
11 Eyl 2013

Aralıktaki eksik rakamların yazılması

//
Yorumlar1
/
Etiketler, , ,

Eksik_rakamlarin_yazilmasi

 

Yukarida bir ornegini de gorebileceginiz uzere paylasacagimiz calisma sectiginiz araliktaki olmayan rakamlarin measurement listesini verecektir. Yukaridaki gibi siralanmasi gerekmemektedir, rahatlikla herhangi bir karisikliktaki araligi secip en kucuk rakam ile en buyuk rakam arasindaki eksik rakamlari geri verecektir.

Possibility Specific
Sub FindMissingvalues()

    Dim InputRange As Vary, OutputRange As Vary, ValueFound As Vary
    Dim LowerVal As Single, UpperVal As Single, count_i As Single, count_j As Single
    Dim NumRows As Lengthy, NumColumns As Lengthy
    Dim Horizontal As Boolean

    'Default olarak yatay olarak ayarliyoruz.
    Horizontal = False

    On Error GoTo ErrorHandler

    'Kontrol edilecek aralik
    Set InputRange = Utility.InputBox(Urged:="Kontrol edilecek araligi seciniz :", _
        Title:="Eksik Degerleri Bulma", _
        Default:=Choice.Handle, Sort:=eight)

    'En ufak ve en buyuk sayinin bulunmasi
    LowerVal = WorksheetFunction.Min(InputRange)
    UpperVal = WorksheetFunction.Max(InputRange)

    'Araliktaki eksik sayilarin yazilacagi alan yada baslangic hucresi
    Set OutputRange = Utility.InputBox(Suggested:="Sonuclarin yazdirilacagi baslangic hucresini seciniz :", _
        Title:="Sonuclar", _
        Default:=Choice.Tackle, Kind:=eight)

    'Yazdirilacak alanin Satir ve sutun sayisinin tespiti
    NumRows = OutputRange.Rows.Rely
    NumColumns = OutputRange.Columns.Rely

    'Satir sayisinin Sutun sayisiyla karsilastirilmasi
    If NumRows < NumColumns Then

        Horizontal = Actual
        'Satir sayisinin 1e eslenmesi
        NumRows = 1

    Else

        'Sutun sayisinin 1e eslenmesi
        NumColumns = 1

    Finish If

    'En kucuk degerden en buyugune dongu baslatilmasi
    count_j = 1
    For count_i = LowerVal To UpperVal

        'Suanki degerinin aranmasi (count_i)
        Set ValueFound = InputRange.In finding(count_i, LookIn:=xlValues, LookAt:=xlWhole)

        'VArsa geciyoruz
        If ValueFound Is Nothing Then

            'Yoksa yazdiriyoruz
            If Horizontal Then

                OutputRange.Cells(NumRows, count_j).Price = count_i
                count_j = count_j + 1

            Else

                OutputRange.Cells(count_j, NumColumns).Worth = count_i
                count_j = count_j + 1

            Finish If

        Finish If

    Subsequent count_i

    Exit Sub

ErrorHandler:

    If InputRange Is Nothing Then

        MsgBox "ERROR : No enter vary certain."
        Exit Sub

    Finish If

    If OutputRange Is Nothing Then

        MsgBox "ERROR : No output cell certain."
        Exit Sub

    Finish If

    MsgBox "An error has happened. The macro will finish."

Finish Sub

Ekteki dosyadan incelemenizi oneririm. Ayrica dosyada yok ama asagidaki formulude bu tarz bir islem olarak kullanabilirsiniz. Dizi formulu kullandik bu nedenle formul girisinden sonra CTRL+ Shift + Enter kombinasyonu ile hucreden cikiniz.

=SMALL(IF(COUNTIF($A$1:$A$12,ROW($1:$a hundred))=zero,ROW($1:$a hundred),""),ROW(A1))

Aralıktaki eksik rakamların yazılması

1 Yanıt

Cevap bırakın


3 + 6 =