Rata-rata tersebar di beberapa bidang di Excel?

3

Saya punya tabel dengan urutan data.
Data ini digunakan dalam grafik.
Ada lubang di data ini yang ingin saya isi dengan angka yang dihaluskan.

Ambil tabel ini misalnya:

sample table

Dalam contoh di atas, ada 3 celah antara 93 dan 68 yang ingin saya isi.
Urutannya harus 93, 86.75, 80.5, 74.25 dan kemudian 68.

Formula apa yang bisa saya gunakan untuk menghitung secara otomatis angka-angka di antaranya?

Edit: celah bisa berupa jumlah baris, mereka bisa naik atau turun.

Michael Galos
sumber
Apakah mereka selalu menurun, saat Anda turun, dan selalu positif?
Lance Roberts
Apakah akan ada lebih dari satu celah dalam angka di kolom?
Lance Roberts
Tidak selalu positif dan bisa berupa kesenjangan ukuran. Waktu di kolom paling kiri akan selalu bertambah 10 menit dan tidak akan ada celah.
Michael Galos
Wow, interpolasi sulit ketika Anda tidak ingin mengubah kenaikan ketika Anda mengisi nilai-nilai, masih mengerjakannya.
Lance Roberts
OK, sementara saya bisa melakukan rumus untuk interpolasi, itu tidak akan berhasil karena ketika sel pertama mengisi, itu akan mengubah kenaikan pada sel-sel berikut, dan seterusnya. Karena saya tidak bisa menyimpan variabel (untuk jumlah sel kosong di celah), saya tidak bisa melakukannya dalam fungsi lembar kerja. Beri tahu saya jika Anda menginginkan solusi VBA. Saya akan kembali besok, cukup sebutkan nama saya di komentar dengan tanda '@'.
Lance Roberts

Jawaban:

1

Jika interval waktu Anda selalu sama spasi Anda dapat menggunakan Excel Mengisi fitur.

  • Pilih B2285: F2289 (rentang kosong ditambah baris data di atas dan di bawah)
  • Di Rumah tab pita, pilih Mengisi lalu Seri...
    • Seri dalam: Kolom
    • Mengetik: Linier
    • Kecenderungan: iya nih
    • Klik baik

Diuji dalam Excel 2007.

Mike Fitzpatrick
sumber
1

Dengan sub VBA ini, Anda dapat memilih sel yang ingin diinterpolasi, lalu mengaktifkan makro. Saya menggunakan tombol, tetapi Anda mungkin ingin menggunakan kombinasi tombol pintas.

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
Lance Roberts
sumber
Terima kasih untuk itu, Anda memberi saya inspirasi untuk menulis versi saya sendiri!
Michael Galos
0

Saya akhirnya menulis beberapa kode VBA terima kasih @ Lance Roberts
Kode ini benar-benar akan berulang melalui setiap baris dan kolom mencari entri kosong, meraih nilai atas dan bawah dan menghitung dengan cara itu.
Satu-satunya masalah adalah ketika baris pertama jika data kosong.
Kolom-kolom tersebut diberi kode 10 karena kemalasan.

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
Michael Galos
sumber
0

Ini akan sulit dilakukan ketika Anda tidak memiliki pendakian naik atau turun yang stabil.

Saran terbaik saya adalah hanya menyoroti angka yang Anda miliki dan kemudian mengklik kotak di sudut kanan bawah area yang disorot, dan menyeret ke bawah untuk membiarkan Excel melakukan pekerjaan terbaiknya dalam menebak.

alt text

Ryan
sumber