Excel'de birkaç alana yayılan ortalamalar?


3

Bir dizi veri içeren bir masam var.
Bu veriler bir grafikte kullanılır.
Bu verilerde düzleştirilmiş sayılarla doldurmak istediğim delikler var.

Bu tabloyu ele alalım örneğin:

örnek tablo

Yukarıdaki örnekte, doldurmak istediğim 93 ile 68 arasında 3 boşluk var.
Dizi 93, 86.75, 80.5, 74.25 ve sonra 68'e gitmelidir.

Aradaki sayıları otomatik olarak hesaplamak için ne tür bir formül kullanabilirim?

Düzenleme: boşluklar herhangi bir sayıda satır olabilir, yukarı ya da aşağı gidebilir.


Siz aşağı indikçe daima azalıyor mu, daima olumlu mu?
Lance Roberts

Bir sütundaki sayılarda birden fazla boşluk olacak mı?
Lance Roberts

Her zaman pozitif değil ve herhangi bir boyut farkı olabilir. En soldaki sütunda geçen süre her zaman 10 dakikalık artışlarla olacak ve boşluk kalmayacak.
Michael Galos,

Vay, enterpolasyon, değerleri doldururken hala üzerinde çalışarak artımını değiştirmek istemiyorsanız zordur.
Lance Roberts,

Tamam, enterpolasyon formülünü yapabildiğim halde, çalışmaz çünkü ilk hücre doldurduğunda, aşağıdaki hücrelerdeki artışı değiştirir, vb. Bir değişkeni (boşluktaki boş hücrelerin miktarı için) gerçekten depolayamadığım için, bunu bir çalışma sayfası işlevinde yapamam. Bir VBA çözümü istiyorsanız, bana bildirin. Yarın geri döneceğim, sadece '@' işaretli bir yorumda adıma referans verin.
Lance Roberts,

Yanıtlar:


1

Zaman aralıklarınız her zaman eşit aralıklarla yerleştirilmişse , Excel'in Doldurma özelliğini kullanabilirsiniz.

  • B2285: F2289'u seçin (boş aralık artı üstte ve altta veri satırları)
  • Açık Ev şerit sekmesi, seçmek doldurun sonra ve Diziler ...
    • Seriler: Sütunlar
    • Tip: doğrusal
    • Trend: Evet
    • Click OK

Excel 2007'de test edilmiştir.


1

Bu VBA alt ile enterpolasyon yapmak istediğiniz hücreleri seçebilir, ardından makroyu aktif hale getirebilirsiniz. Bir düğme kullandım, ancak muhtemelen bir kısayol tuşu açılan çalışması yapmak isteyeceksiniz.

Private Sub InterpolateGap()

Dim Gap As Range
Dim GapRows As Integer, i As Integer, Increment As Integer

Set Gap = Selection
If Not Gap Is Nothing Then
    GapRows = Gap.Rows.Count
    Increment = (Gap.Cells(1, 1).Offset(-1, 0) - _ 
                 Gap.Cells(1, 1).Offset(GapRows, 0)) / GapRows
    For i = 1 To GapRows
        Gap.Rows(i).Cells(1, 1) = _ 
        Gap.Rows(i).Cells(1, 1).Offset(-1, 0) - Increment
    Next i
End If

End Sub

Bunun için kendi versiyonumu yazmak için bana ilham verdiniz!
Michael Galos,

0

Bazı LBA Roberts @ VBA kodu yazma bitti
Bu kod aslında her satır ve sütun boyunca döngü boş girişleri arama, üst ve alt değerleri kapma ve bu şekilde hesaplar.
Tek sorun, eğer veriler boşsa ilk satır olduğunda.
Sütunlar tembellik nedeniyle 10 olarak kodlanmıştır.

Sub SetAverages()
   Dim lastrow As Integer, ncol As Integer, nrow As Integer
   Dim secondvalrow As Integer, blankrows As Integer
   Dim difference As Double, Increment As Double


    Range("A65535").End(xlUp).Select
    lastrow = ActiveCell.Row

    For ncol = 2 To 10
        For nrow = 2 To lastrow   'start after header row
            If Cells(nrow + 1, ncol).Value = "" Then
                secondvalrow = nrow + 1
                Do Until Cells(secondvalrow, ncol).Value <> "" Or secondvalrow = lastrow + 1
                    secondvalrow = secondvalrow + 1
                Loop

                blankrows = secondvalrow - nrow

                difference = Cells(secondvalrow, ncol).Value - Cells(nrow, ncol).Value
                Increment = difference / blankrows
                For i = nrow + 1 To secondvalrow - 1
                    Cells(i, ncol).Value = Cells(i - 1, ncol).Value + Increment
                Next i
            End If
        Next nrow
    Next ncol
End Sub

0

Sabit bir yukarı veya aşağı tırmanmaya sahip olmadığınız zaman yapmak zor olacaktır.

En iyi tavsiyem, sahip olduğunuz sayıları vurgulamak ve sonra vurgulanan alanın sağ alt köşesindeki kutuyu tıklamak ve Excel'in tahmin etmek için en iyi işini yapmasını sağlamak için aşağı sürüklemektir.

alt metin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.