Espansione di range di date nella stessa colonna

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel

Rispondi
Avatar utente

abartozzi
Messaggi: 15 | Topic creati
Iscritto il: lun 8 mar 2021, 22:42
Luogo: Senigallia (AN)

Espansione di range di date nella stessa colonna

Messaggio da abartozzi »

Carissimi di Mondo BI,

questa è una modellazione che mi sta dando parecchie noie: il tutto parte da un expo di un un file excel che scarico dal mio gestionale, una roba che praticamente inutilizzabile, ma anche come banale file excel di base. Dopo lunghe e penose peripezie sono riuscito a far si che il mio modello stia arrivando all'ottimo per integrare delle basi di dati che già ho ma ho un ultimissimo problema che non so come affrontare. Vi do un sample di dati:

Servizio Inizio Id Tipo Nome Rate RefreshDate Room Type
A1CASMONTE 18/03/2021 S1 DBLSU SUPERIOR ROOM 100 12/04/2021 DBL
A1CASMONTE 02/04/2021 S1 DBLSU SUPERIOR ROOM 150 12/04/2021 DBL
A1CASMONTE 05/04/2021 S1 DBLSU SUPERIOR ROOM 100 12/04/2021 DBL
A1CASMONTE 01/05/2021 S1 DBLSU SUPERIOR ROOM 150 12/04/2021 DBL
A1CASMONTE 29/05/2021 S1 DBLSU SUPERIOR ROOM 200 12/04/2021 DBL
A1CASMONTE 06/06/2021 S1 DBLSU SUPERIOR ROOM 182 12/04/2021 DBL
A1CASMONTE 10/07/2021 S1 DBLSU SUPERIOR ROOM 250 12/04/2021 DBL
A1CASMONTE 29/08/2021 S1 DBLSU SUPERIOR ROOM 180 12/04/2021 DBL
A1CASMONTE 26/09/2021 S1 DBLSU SUPERIOR ROOM 100 12/04/2021 DBL
A1CASMONTE 01/11/2021 S1 DBLSU SUPERIOR ROOM 0 12/04/2021 DBL

Il problema sta nelle date: qua si tratta di una tipologia di camera di un hotel e nella colonna "inizio" si identifica l'inizio della validita della tariffa (Rate). Quello che devo fare è espandere le righe in modo da avere:

Servizio Inizio Id Tipo Nome Rate RefreshDate Room Type
A1CASMONTE 18/03/2021 S1 DBLSU SUPERIOR ROOM 100 12/04/2021 DBL
A1CASMONTE 19/03/2021 S1 DBLSU SUPERIOR ROOM 150 12/04/2021 DBL
A1CASMONTE 20/04/2021 S1 DBLSU SUPERIOR ROOM 100 12/04/2021 DBL

A1CASMONTE ../../.... S1 DBLSU SUPERIOR ROOM 150 12/04/2021 DBL
A1CASMONTE 02/04/2021 S1 DBLSU SUPERIOR ROOM 100 12/04/2021 DBL

Cioè in pratica ogni riga di data inizio è va espansa fino alla successiva. Generalmente avevo sempre una colonna di data "fine" per fare la differenza di date e fare la lista ma in questa situazione non so bene come fare.

Avete qualche consiglio?

grazie 1000

Albe


Avatar utente

Andrea90
Messaggi: 2244 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 672 volte
Contatta:

Espansione di range di date nella stessa colonna

Messaggio da Andrea90 »

Ciao abartozzi,

Quindi a te servirebbe che se hai una riga dati che va dal 01/01/2021 con fine 10/01/2021, invece che avere una singola riga ne vorresti 10 tutte uguali dove ciò che cambia è solo il giorno di inizio ?

Per quale tipo di analisi ti servirebbe un dataset di questo tipo? Considera che agendo in questo modo andrai ad appesantire di tanto il tuo modello dati, andando a copiare più volte le stesse informazioni, senza apportare dei benefici informativi... per fare un esempio, se nella riga originale hai la tariffa, quest’ultima verrà ripetuta in ogni riga con lo stesso importo andando così a generare la necessità di dover star sempre attento al tipo di aggregazione che vorrai andare a fare.

A presto m,
Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Avatar utente

Autore del topic
abartozzi
Messaggi: 15 | Topic creati
Iscritto il: lun 8 mar 2021, 22:42
Luogo: Senigallia (AN)

Espansione di range di date nella stessa colonna

Messaggio da abartozzi »

Ciao Andrea,

Quindi a te servirebbe che se hai una riga dati che va dal 01/01/2021 con fine 10/01/2021, invece che avere una singola riga ne vorresti 10 tutte uguali dove ciò che cambia è solo il giorno di inizio ? CORRETTO, e quando cambia data fa lo stesso lavoro fino alla prossima

si sono consapevole che si genera quel problema, ma questa cosa confluisce in una tabella in cui un'interrogazione a un API raccoglie ogni giorno delle tariffe alberghiere giornaliere, per cui per mantenere la stessa struttura mi è più facile fare una cosa del genere. Tutto questo va a popolare dei modelli in power BI in cui quelle tariffe vengono poi suddivise per fonte (ossia se vengono da expedia,edreams, o dal gestionale evidentemente)
Avatar utente

Autore del topic
abartozzi
Messaggi: 15 | Topic creati
Iscritto il: lun 8 mar 2021, 22:42
Luogo: Senigallia (AN)

Espansione di range di date nella stessa colonna

Messaggio da abartozzi »

guarda ti do una visione più ampia della cosa:

come vedi i servizi cambiano, cosi come le tipologie di camere e loro tariffe. Pertanto l'espansione deve essere consistente e mantenere lo stesso dato a prescindere dalla collocazione della riga nella tabella

Servizio Inizio Id Tipo Nome Rate RefreshDate Room Type
A1HTLFORES 01/01/2021 S1 DBL CAMERA DOPPIA 55 12/04/2021 DBL
A1HTLMONTE 01/01/2021 S6 SUDBL CAMERA MATRIMONIALE SUPERIOR 162 12/04/2021 DBL
A1AFGHVIAR 01/01/2021 S3 ROOMV CAMERA MATRIMONIALE - CAMERA VERDE 40 12/04/2021 CHK
A1AFGHVIAR 01/01/2021 S4 SUIT null 60 12/04/2021 CHK
A1AFGHVIAR 01/01/2021 S5 BB PERNOTTAMENTO E PRIMA COLAZIONE 0 12/04/2021 CHK
A1AFGHVIAR 01/01/2021 S2 DBLUS CAMERA MATRIMONIALE - ROOM VIA ROMA 30 12/04/2021 DBL
A1HTLFORES 01/01/2021 S3 HB MEZZA PENSIONE 25 12/04/2021 CHK
A1HTLFORES 01/01/2021 S2 SGL CAMERA SINGOLA 0 12/04/2021 SGL
A1HTLMONTE 01/01/2021 S4 PABDL CAMERA MATRIMONIALE PANORAMIC 180 12/04/2021 CHK
A1HTLMONTE 01/01/2021 S3 FAM CAMERA FAMILY 198 12/04/2021 CHK
A1HTLMONTE 01/01/2021 S2 DBL CAMERA MATRIMONIALE STANDARD null 12/04/2021 DBL
A1HTLMONTE 01/01/2021 S5 RODBL CAMERA MATRIMONIALE ROMANTIC 225 12/04/2021 DBL
A1HTLMONTE 01/01/2021 S1 CLDBL CAMERA MATRIMONIALE CLASSIC 144 12/04/2021 DBL
A1AFGHVIAR 01/01/2021 S6 PAX SUPPLEMENTO EXTRA PAX 10 12/04/2021 CHK
A1AFGHVIAR 01/01/2021 S1 DBL CAMERA MATRIMONIALE - ROOM VIA ROMA 40 12/04/2021 DBL
A1HTLSGPLC 01/03/2021 S4 TRIPL CAMERA TRIPLA 110 12/04/2021 TPL
A1HTLSGPLC 01/03/2021 S1 SGL CAMERA SINGOLA 68 12/04/2021 SGL
A1HTLSGPLC 01/03/2021 S3 SUDBL CAMERA MATRIMONIALE/DOPPIA SUPERIOR 105 12/04/2021 DBL
A1HTLSGPLC 01/03/2021 S2 STDBL CAMERA MATRIMONIALE/DOPPIA STANDARD 85 12/04/2021 DBL
A1AGRCORON 08/03/2021 S5 PODBL CAMERA DOPPIA POIANA null 12/04/2021 DBL
A1AGRCORON 08/03/2021 S6 PODUS DOPPIA USO SINGOLA POIANA 59,5 12/04/2021 SGL
A1AGRCORON 08/03/2021 S2 BODUS DOPPIA USO SINGOLA BOTTE 62 12/04/2021 SGL
A1AGRCORON 08/03/2021 S1 BODBL CAMERA DOPPIA BOTTE 119 12/04/2021 DBL
A1AGRCORON 08/03/2021 S3 LEDBL CAMERA DOPPIA LEPROTTO/CERBIATTO 102 12/04/2021 DBL
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Espansione di range di date nella stessa colonna

Messaggio da Enrico Galli »

Ciao, la tecnica (una delle tecniche) è questa:
1) aggiungi una colonna indice (la chiamiamo "ID"), a base 0
2) aggiungi una colonna personalizzata "Fine" con questa formula:

Codice: Seleziona tutto

 = List.Range(PassaggioPrecedente[Inizio],[ID]+1, 1)
3) Aggiungi un'altra colonna personalizzata con la lista delle date:

Codice: Seleziona tutto

 = {Number.From[Inizio]..Number.From[Fine]}
4) Espandi la lista e trasformi la colonna in data

Fai sapere :wave:
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

Autore del topic
abartozzi
Messaggi: 15 | Topic creati
Iscritto il: lun 8 mar 2021, 22:42
Luogo: Senigallia (AN)

Espansione di range di date nella stessa colonna

Messaggio da abartozzi »

Cmq Andrea90 mi hai messo una bella pulce nell'orecchio: come ti dicevo nell'altra estrazione con API effettivamente il campo che varia di riga in riga è la data o la fonte. Mettendo la fonte come colonna risparmierei un botto di righe che su un account gratis di SQL express (per cui sarò sempre grato a Ludovico D'Incau per i suoi tutorial fatti da dio) direi che potrebbe risparmiare buon spazio
Avatar utente

Autore del topic
abartozzi
Messaggi: 15 | Topic creati
Iscritto il: lun 8 mar 2021, 22:42
Luogo: Senigallia (AN)

Espansione di range di date nella stessa colonna

Messaggio da abartozzi »

Enrico Galli ha scritto: lun 12 apr 2021, 10:04 = List.Range(PassaggioPrecedente[Inizio],[ID]+1, 1)
ciao Enrico, mi da questo: Expression.Error: The name 'PassaggioPrecedente' wasn't recognized. Make sure it's spelled correctly.

Forse mi serve l'equivalente in Inglese perche ho xls in Inglese
Avatar utente

Autore del topic
abartozzi
Messaggi: 15 | Topic creati
Iscritto il: lun 8 mar 2021, 22:42
Luogo: Senigallia (AN)

Espansione di range di date nella stessa colonna

Messaggio da abartozzi »

Enrico Galli ha scritto: lun 12 apr 2021, 10:04 Ciao, la tecnica (una delle tecniche) è questa:
1) aggiungi una colonna indice (la chiamiamo "ID"), a base 0
2) aggiungi una colonna personalizzata "Fine" con questa formula:

Codice: Seleziona tutto

 = List.Range(PassaggioPrecedente[Inizio],[ID]+1, 1)
3) Aggiungi un'altra colonna personalizzata con la lista delle date:

Codice: Seleziona tutto

 = {Number.From[Inizio]..Number.From[Fine]}
4) Espandi la lista e trasformi la colonna in data

Fai sapere :wave:
Ciao Enrico,

ho superato la difficoltà del messaggio prima. Però arrivato alla fine delle tue istruzioni mi da questo

Expression.Error: We cannot apply field access to the type Function.
Details:
Value=[Function]
Key=Inizio


Tra l'altro me lo fa sia che provo ad espandere la prima lista che lasciandola compressa. Ho notato che espandendola cmq mi ripete la colonna inizio, mi domando se è stata formalizzata in modo corretto.

Intanto grazie :D
Rispondi