isi nilai dalam excel sesuai dengan tanggal

1

Saya memiliki tantangan di Excel 2010. Saya memiliki daftar ID dengan variabel berikut: issue_date, nilai kumulatif, tanggal jatuh tempo. Setiap ID memiliki tanggal penerbitan dan tanggal jatuh tempo yang berbeda, tetapi semuanya berada dalam kisaran (periode analisis) antara 2 Januari 2007 dan 23 Desember 2011. Contoh singkat di bawah ini:

Id memiliki 3 nilai berbeda: satu untuk 2 Jan 2007 (nilai: 1000); lain untuk 5 Mei 2007 (nilai: 1500) dan yang terakhir untuk 4 Desember 2007 (nilai: 2700). Yang saya inginkan adalah agar id ini memiliki nilai kumulatif yang diduplikasi selama durasi itu aktif.

Jadi, dalam hal ini, selama periode 2 Januari 2007 hingga 4 Mei 2007 nilainya akan menjadi (1000); kemudian untuk periode 5 Mei 2007 hingga 3 Desember 2007 nilainya akan menjadi 1500; akhirnya untuk periode antara 4 Desember 2007 hingga tanggal jatuh tempo (katakanlah 3 Mar 2010) nilainya akan tetap di 2.700.

Ini adalah tantangan berat bagi saya karena saya memiliki 355 id yang berbeda. Beberapa id memiliki nilai unik, artinya nilai kumulatifnya akan direplikasi hingga tanggal jatuh tempo. Namun, ada id lain yang memiliki nilai kumulatif berbeda (pada tanggal yang berbeda) yang harus diatur dengan benar.

Output akhir akan menjadi satu set tanggal berurutan antara 2 Januari 2007 dan 23 Desember 2011 (dalam kolom) dan kemudian 355 baris data yang dialokasikan secara bersamaan. Saya dapat mengirim contoh singkat di Excel jika perlu memiliki gagasan yang lebih jelas tentang permintaan tersebut.

Rodrigo Briceño
sumber
Kolom apa yang ingin Anda hasilkan? ID, start_date, end_date, nilai?
Excellll

Jawaban:

2

Untuk melakukan ini, Anda perlu memijat data Anda sedikit sebelum membuat matriks.

  1. Sortir data Anda menurut ID dan issue_date (A hingga Z) dalam urutan atau prioritas itu.
  2. Tambahkan kolom end_date. Nilai dari end_date akan menjadi lebih awal dari tanggal jatuh tempo untuk catatan itu dan satu hari sebelum issue_date berikutnya untuk ID spesifik itu. Asumsi ID ada di kolom A, issue_date ada di kolom B, dan maturity_date ada di kolom D, masukkan rumus berikut untuk end_date dari catatan pertama. Mengisi.

    =TEXT(IF(A3=A2,MIN(B3-1,D2),D2),"mmm d, yyyy")

    enter image description here

  3. Di lembar lain, buat kerangka kerja untuk matriks Anda. Buat label kolom dengan memasukkan tanggal pertama dan kemudian mengisi sampai ke tanggal akhir Anda. Anda bisa mendapatkan label baris dengan melakukan filter lanjutan untuk catatan unik pada ID di tabel Anda.

  4. Di sel kiri atas matriks Anda (B3 dalam contoh ini), masukkan rumus berikut. 'Raw' adalah nama lembar dengan data asli Anda.

    =SUMPRODUCT(Raw!$C$2:$C$23,--(Raw!$A$2:$A$23=Matrix!$A3),--(DATEVALUE(Raw!$B$2:$B$23)<=Matrix!B$2),--(DATEVALUE(Raw!$E$2:$E$23)>=Matrix!B$2))

    Isi berulang-ulang untuk mengisi matriks Anda. Ini akan mengembalikan nilai ID pada tanggal itu dan 0 jika tidak ada data yang tersedia untuk tanggal itu.

    enter image description here

SUMPRODUCT () adalah salah satu fungsi yang paling tidak intuitif tetapi paling bermanfaat di Excel. Pada dasarnya apa yang dilakukannya adalah mengalikan nilai yang sesuai dari setiap argumen array dan kemudian merangkum produk-produk ini. Di sini array adalah nilai kumulatif dari tabel dan array 0s dan 1s yang menunjukkan apakah kriteria telah dipenuhi atau tidak. Oleh karena itu, hanya nilai yang memenuhi semua kriteria yang akan memiliki produk bukan nol. Karena hanya satu catatan yang harus memenuhi semua kriteria, jumlahnya hanya akan menjadi nilai itu.

Saya menggunakan tanggal sebagai teks di sini, tetapi rumus ini harus berfungsi untuk tanggal yang diformat sebagai tanggal di Excel juga. Itu TEXT() dan DATEVALUE() bit berlebihan dalam hal itu, tetapi semuanya harus bekerja sama

Excellll
sumber
Terima kasih atas jawaban Anda, Excellll. Saya sangat membutuhkan saran end_date yang Anda buat. Beberapa klarifikasi kecil. Saya tidak memiliki duplikat ID sebagai baris 6-7 dan baris 9-10. Tabel output baik-baik saja, tapi kemudian saya akan meminta saran Anda: rencana awal saya adalah pada kolom tanggal dari Januari1-2007 sampai 23 Desember1 Desember, maka baris akan 1-355 (untuk id berbeda saya). Permintaan FILL menyiratkan (mengikuti contoh Anda) bahwa ID 1 akan memiliki 900 dari apr3008 ke apr1209 (di bawah setiap kolom tanggal yang sesuai), lalu 1300 dari apr1309 ke apr1310, dll. Jadi output awal saya adalah matriks dengan tanggal, ID dan nilai
Rodrigo Briceño
Saran? Saya ingin keluaran gaya matriks karena saya memiliki satu set nilai yang berbeda (kumpulan data lain) dalam format yang sama: ID dalam baris, tanggal dalam kolom, yang dapat saya gunakan untuk menghasilkan hasil bagi. Apakah Anda berpikir bahwa output yang Anda sarankan dapat dikombinasikan dengan dataset ini dalam gaya lain? Bisakah saya mengirimkan satu set data singkat kepada Anda? sangat rumit untuk mengekspresikan permintaan hanya dengan teks.
Rodrigo Briceño
Saya mengalami kesulitan memahami permintaan Anda. Akan sangat membantu jika saya bisa melihat datanya. Mungkin akan lebih mudah untuk mengirim cuplikan layar dari data Anda dan seperti apa output yang Anda inginkan. Jika Anda tidak dapat memposting gambar di sini (karena rep rendah), Anda dapat memposting tautan ke tangkapan layar.
Excellll
@ RodrigoBriceño Ah, dengan bantuan beberapa suntingan bermanfaat (bukan milik saya), saya rasa saya mengerti apa yang Anda cari sekarang. Saya melihat bahwa saya melewatkan sasaran, tetapi jawaban saya membuat Anda setengah jalan di sana. Saya akan mencoba mencari waktu untuk mengedit dan memberikan solusi lengkap segera.
Excellll
@ RodrigoBriceño Saya mengirim jawaban baru.
Excellll