[belajar-excel] Deteksi Suatu Data pada 2 rentang waktu yang beririsan [1 Attachment]

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[belajar-excel] Deteksi Suatu Data pada 2 rentang waktu yang beririsan [1 Attachment]

Eira_ariE
Yth. B-Exceller
 

 Assalaamu'alaikum Wr Wb
 

 Mohon kiranya dapat membantu menyelesaikan kasus terlampir.
 

 Terima kasih.
 

 Wassalaamu'alaikum Wr Wb
 

 Ari

deteksi kasus.xlsx (14K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [belajar-excel] Deteksi Suatu Data pada 2 rentang waktu yang beririsan

Agus-2
Wa 'alaikumusalam Warahmatulah Wabarakatuh
Dear Cheivory,
Coba di H2 Diketik formula:
=IF(COUNTIFS($B$2:B2,B2,$G$2:G2,">="&F2)>1,"sedang state
"&INDEX(Table1[STASE],MATCH(B2,Table1[NIM],0)),"")
Copy ke bawah

Wasalamu'alaikum Warahmatulah Wabarakatuh
NangAgus
On 12/22/2018 10:17, [hidden email] [belajar-excel] wrote:

>
> Yth. B-Exceller
>
>
> Assalaamu'alaikum Wr Wb
>
>
> Mohon kiranya dapat membantu menyelesaikan kasus terlampir.
>
>
> Terima kasih.
>
>
> Wassalaamu'alaikum Wr Wb
>
>
> Ari
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [belajar-excel] Deteksi Suatu Data pada 2 rentang waktu yang beririsan [1 Attachment]

Eira_ariE
terima kasih Pak Nang  

 

 Mohon maaf, ternyata data dummy yang saya kirimakn sebelumnya kurang mewakili data asli. sehingga hasil yang diharapkan ada yang belum sesuai.
 

 Mohon solusinya .. terlampir data dummy sudah diperbarui
 

 Terima kasih

re - deteksi kasus.xlsx (15K) Download Attachment
Kid
Reply | Threaded
Open this post in threaded view
|

Re: [belajar-excel] Deteksi Suatu Data pada 2 rentang waktu yang beririsan

Kid
Administrator
In reply to this post by Eira_ariE
Wa'alaikumussalam wr wb

Misal :
- kolom Mulai disebut CM, dengan nilai mulai yang diperiksa adalah NM
- kolom Selesai disebut CS, dengan nilai selesai yang diperiksa adalah NS

Beririsan atau himpunan bagian ditentukan dengan memeriksa 2 keadaan yang
memungkinkan, yaitu :
1. jika nilai mulai (NM) dalam rentang dari setiap nilai di CM sampai
dengan CS     -> (NM>=CM)*(NM<=CS)
    Contoh : nilai rentang  7 sampai dengan 12 beririsan dengan nilai
rentang 5 sampai dengan 9 atau *sebagai *himpunan bagian dari rentang 6
sampai 17
    *** tidak perlu periksa nilai selesai, cukup nilai mulai terhadap batas
rentang bawah dan atas baris lainnya
atau [+]
2. jika nilai mulai (NM) sebelum setiap nilai di CM, tetapi nilai selesai
(NS) lebih dari sama dengan CM -> (NM<CM)*(NS>=CM)
    Contoh : nilai rentang 7 sampai dengan 12 beririsan dengan nilai
rentang 10 sampai 15 atau *memiliki *himpunan bagian rentang nilai 8 sampai
11
Jadi bunyi kriteria rentangnya adalah (  (NM>=CM)*(NM<=CS) +
(NM<CM)*(NS>=CM)   )    -> kriteria 1 : rentang nilai

Karena pemeriksaan rentang nilai tidak boleh dilakukan pada dirinya sendiri
(terhadap record itu sendiri), maka perlu kriteria 2, yaitu ( Row(NM) <>
Row(CM) )

Susunan kriteria 1 dan kriteria 2 menjadi :
(  (NM>=CM)*(NM<=CS) + (NM<CM)*(NS>=CM)   )  *   ( Row(NM) <> Row(CM) )

Jika ada kriteria lainnya, silakan ditambahkan sendiri, misal kriteria 3,
nilai kode (NKODE) harus yang sama saja di kolom kode (CKODE) ->  (
NKODE=CKODE )
Jadinya, susunan kriteria 1 sampai 3 menjadi :
(  (NM>=CM)*(NM<=CS) + (NM<CM)*(NS>=CM)   )  *   ( Row(NM) <> Row(CM) )
 *    ( NKODE=CKODE )

Hasil dari kalkulasi seluruh kriteria adalah array n record x 1 kolom yang
berisi angka 1 (ada irisan atau himpunan bagian), atau nilai 0 (terpisah)

Ketika ingin mengambil salah satu dari sekian hasil yang beririsan atau
himpunan bagian, maka perlu summary dengan MIN (untuk dapat record pertama
yang beririsan atau himpunan bagian) atau dengan MAX (untuk dapat record
terakhir yang beririsan atau himpunan bagian).

Khusus pada kebutuhan untuk mendapatkan record pertama yang beririsan atau
himpunan bagian yang menggunakan MIN, maka perlu dihindari hasil kalkulasi
kriteria bernilai 0, yaitu dengan menjadikan proses kalkulasi kriteria
sebagai bilangan penyebut. Jadi, susunan kriteria pada penggunaan MIN
menjadi :
      1  /  (    (  (NM>=CM)*(NM<=CS) + (NM<CM)*(NS>=CM)   )  *   ( Row(NM)
<> Row(CM) )   *    ( NKODE=CKODE )      )
dan nilai 0 hasil kalkulasi kriteria bisa dibuang dengan memanfaatkan
IFError :
     IFError(   1  /  (    (  (NM>=CM)*(NM<=CS) + (NM<CM)*(NS>=CM)   )  *
 ( Row(NM) <> Row(CM) )   *    ( NKODE=CKODE )      )    ,   "Kid"   )
Nomor record yang memenuhi kalkulasi kriteria bernilai 1 bisa dimasukkan ke
dalam proses kalkulasi tersebut, menggantikan nilai 1, misal
     IFError(    (  Row(CM) - Row( header_data )  )   /  (    (
(NM>=CM)*(NM<=CS) + (NM<CM)*(NS>=CM)   )  *   ( Row(NM) <> Row(CM) )   *
( NKODE=CKODE )      )    ,   "Kid"   )
Jadi, formula akhir bisa berbentuk :
    =Min(   IFError(    (  Row(CM) - Row( header_data )  )   /  (    (
(NM>=CM)*(NM<=CS) + (NM<CM)*(NS>=CM)   )  *   ( Row(NM) <> Row(CM) )   *
( NKODE=CKODE )      )    ,   "Kid"   )   )
sebagai array formula.


Jika ingin mendapatkan record terakhir yang memenuhi kriteria, maka
menggunakan MAX :
     =Max(   (  (NM>=CM)*(NM<=CS) + (NM<CM)*(NS>=CM)   )  *   ( Row(NM) <>
Row(CM) )   *    ( NKODE=CKODE )    )
Ketika ingin mendapatkan nomor record yang sesuai kebutuhan, maka bisa
dimasukkan ke dalam formula sebagai pengali :
     =Max(  (  Row(CM) - Row( header_data )  )  *  (  (NM>=CM)*(NM<=CS) +
(NM<CM)*(NS>=CM)   )  *   ( Row(NM) <> Row(CM) )   *    ( NKODE=CKODE )    )


Kira-kira begitulah...

Wassalamu'alaikum wr wb
Kid




On Sat, Dec 22, 2018 at 10:49 AM [hidden email] [belajar-excel] <
[hidden email]> wrote:

>
>
> Yth. B-Exceller
>
>
> Assalaamu'alaikum Wr Wb
>
>
> Mohon kiranya dapat membantu menyelesaikan kasus terlampir.
>
>
> Terima kasih.
>
>
> Wassalaamu'alaikum Wr Wb
>
>
> Ari
>
>
>