Retarder (décalage) une valeur de ligne par date de colonne<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Chers tous,
Je voudrais faire un calcul simple mais je ne peux pas.
La table jmp jointe est un sous-ensemble de la base de données sur l'occupation des hôtels.
La logique simple pour l'ID d'enregistrement 27421 est ;
le 14 avril 2016, 250 chambres arrivent et s'enregistrent,
du 14 au 15 au 16 avril 2016, ces 250 chambres restent à l'hôtel pendant 3 jours,
au 17.04.2015 les 250 chambres arrivées le 14 avril 2016 Départ (quitter l'hôtel).
J'ai besoin de calculer la colonne RoomLeave (que j'ai remplie manuellement à cet effet).
L'ID d'enregistrement est unique, mais beaucoup plus d'arrivées/de séjours/de congés se produisent aux mêmes dates avec des ID d'enregistrement différents.
Un grand merci d'avance pour tout votre soutien.

Re : Retarder (décalage) une valeur de ligne par date de colonneOui, je n'ai pas fourni la formule exacte exacte.Vous êtes devenu proche.C'est le morceau "Jour" qui est délicat. Jim a utilisé la même formule dans le script qu'il a écrit seulement il l'a correcte en ce sens que vous avez besoin des guillemets autour de "Day".Avec de nombreuses formules JMP, les options peuvent être délicates (elles ont généralement un sens une fois que vous les voyez), donc je trouve que j'ai souvent besoin du manuel d'utilisation pour obtenir toutes les pièces correctes.
Re : Retarder (décalage) une valeur de ligne par date de colonneMerci Jim Nelson! Cela fonctionne et oui les données sont dans l'ordre croissant.
Merci encore, je peux tirer mon rapport.

PS : Malheureusement le 'jour' doit provenir de la DateSéjour pour le ArrivéeChambre et ChambreNuit mais ne convient pas pour RoomCout qui nécessite un délai de +1 jour (un invité ne peut pas rester et partir le jour même). Acc. à ma logique, il est impossible de le résoudre dans un rapport tabulé comme celui ci-dessus...
Re : Retarder (décalage) une valeur de ligne par date de colonneCher karen@boulderstats Merci de votre contribution. Soit je l'ai mal fait, soit la formule elle-même donne une erreur.

Re : Retarder (décalage) une valeur de ligne par date de colonneLes données de chaque RecordID sont-elles toujours regroupées et par ordre croissant en fonction de StayDate ?
Si c'est le cas, voici une formule qui fonctionnera :
Si( :RecordId != Retard( :RecordId ) | Row() == 1,
ar = :Salle d'arrivée
);
Si( Différence de dates( :StayDate, :CheckOutDate, "Jour" ) == 1,
ar,
0
);
Re : Retarder (décalage) une valeur de ligne par date de colonneCher Jim Nelson,
Merci pour l'entrée, ça fait le travail mais j'ai besoin de le résoudre avec une colonne de formules, la base de données est énorme et se met à jour à chaque minute.
Re : Retarder (décalage) une valeur de ligne par date de colonneVoici un script rapide qui effectue la mise à jour souhaitée de la table de données.
Les noms par défaut ici ( 1 );
dt= tableau de données actuel ();
// Crée la colonne RoomLeave et l'initialise
Si ( Essayer (dt:RoomLeave<< obtenir le nom , "" )!= "" , dt<< supprimer des colonnes ( « RoomLeave » ));
attendez ( .2 );
dt<< Nouvelle colonne ( « RoomLeave » , définissez chaque valeur( 0 ));
// Trouver la dernière date de séjour et la salle d'arrivée pour chaque RecordID
dtsumm = dt << Résumé(invisible,
Groupe( :RecordId ),
Max ( :SéjourDate ),
Max ( :Salle d'arrivée ),
Fréq( "Aucun" ),
Lester( "Aucun" ),
format du nom de la colonne de statistiques( "colonne" )
);
// Changer ArrivalRoom en RoomLeave
dtsumm:Salle d'arrivée << Définir le nom ( « RoomLeave » );
// Nettoyer la table de données pour ne garder que les colonnes nécessaires
dtsumm << supprimer des colonnes ( "N rangées" );
// Mettre à jour la table de données d'origine avec les données de départ
// Correspondance sur le RecordID et la dernière staydate
dt << Mise à jour(
Avec(dtsumm ),
Faire correspondre les colonnes ( :RecordId = :RecordId, :StayDate = :StayDate )
);
// Supprime le tableau des données récapitulatives
fermer (dtsumm, nosave);
Re : Retarder (décalage) une valeur de ligne par date de colonneLa fonction de différence de date fonctionnerait-elle pour vous ?
Si Différence de date (CheckOutDate, CheckInDate, Day) = 1 alors congé de la chambre = nuit de la chambre, sinon 0.