Saya memiliki data tentang periode konstruksi untuk tempat tinggal di daerah penyebaran. Saya telah mentransfer data ini ke area studi saya dan ingin menentukan periode median konstruksi untuk setiap area studi. Satu-satunya masalah adalah bahwa informasi kolom adalah jumlah tempat tinggal dan saya tidak ingin median ini, tetapi judul kolom untuk mengisi baris dalam bidang baru (atau sesuatu yang menunjukkan itu, lebih disukai periode dalam teks format, tapi ini bukan akhir dunia jika hanya angka yang menunjukkan periode).
Saya melampirkan gambar tabel atribut dengan bidang yang relevan disorot. Ada bidang MEDIAN tetapi data yang saya gunakan dibuat oleh orang lain dan tidak terdokumentasi dengan baik, jadi saya tidak yakin apakah perhitungannya sudah dilakukan atau belum.
(Tujuh kolom mewakili tujuh periode waktu yang tidak tumpang tindih yang dipesan secara kronologis. Kolom [Median] tampaknya mengindeks periode di mana total konstruksi setengah selesai; yaitu, ia mencatat waktu rata - rata. )
sumber
Jawaban:
Dengan asumsi kolom muncul dalam urutan waktu, baris pertama (misalnya) menunjukkan bahwa total konstruksi melalui setiap periode berjalan
Konstruksi setengah jalan pada 2230/2 = 1115. Ini terjadi selama periode 4, karena pada akhir periode 3 totalnya adalah 585, pada akhir periode 4 totalnya adalah 1595, dan 585 <= 1115 <1595.
Ini tampaknya merupakan hasil yang dilaporkan oleh kolom [Median], yang memberikan indeks periode (mulai dari 1 di sebelah kiri).
Anda dapat mengkodekan ini dalam bahasa favorit Anda . Tabelnya sangat kecil (100 baris), sehingga spreadsheet akan nyaman, jika hanya untuk memeriksa apa yang Anda lakukan secara lebih formal dengan Python atau apa pun. Begini tampilannya:
Tiga baris data pertama memiliki nilai yang sama dengan milik Anda. Dua baris data berikutnya (dikelilingi oleh baris kosong) dipilih lebih jauh di tabel Anda. Lima baris data terakhir menggunakan algoritme sedikit.
(Perhatikan, seperti yang ditunjukkan dalam dua baris terakhir spreadsheet, bagaimana Excel memilih periode berikutnya setiap kali bagian tengah jatuh tepat di antara dua periode. Ini tidak selalu merupakan jawaban yang "benar", tetapi itu adalah yang valid.)
Berikut adalah rumus di kolom H: R:
Anda tidak harus mengetik semuanya. Satu-satunya pengetikan yang dibutuhkan adalah:
=H2+A2
di I2. Seret ini melalui O2. Ini menghitung jumlah kumulatif. Ini mensyaratkan bahwa kolom A: G berada dalam urutan kronologis.=O2/2
dalam P2. Ini menemukan setengah dari total.=Match(P2,H2:O2,1)
di Q2. Ini mengindeks kolom di mana konstruksi setengah selesai.=Offset($A$1:$G$1,0 0, Q2-1, 1, 1)
dalam R2. Ini mendapatkan judul kolom yang sesuai dengan indeks.Kemudian tempel
0
di semua kolom H dan seret I2: R2 ke baris sebanyak yang diperlukan.Ini secara efektif berfungsi sebagai pseudocode untuk algoritma. Bagian tersulit akan menjadi pencarian untuk mengimplementasikan
MATCH
fungsi Excel . Tapi itu tidak memerlukan keahlian apa pun: tidak efisien untuk mencari setiap array jumlah kumulatif secara berurutan (daripada dengan algoritma pencarian biner yang disukai) karena array ini sangat pendek.sumber
Jika Anda ingin mengembalikan kolom median, saya mungkin akan menggunakan kursor python untuk beralih melalui baris. Gunakan bidang untuk mengisi daftar lalu kembalikan item tengah (akan diindeks pada [3] untuk 7 item) setelah memanggil fungsi sortir () pada daftar yang telah Anda buat. Saya akan menulis sedikit kode ketika saya kembali dari makan siang.
sumber