Pré-requis : s'être logué sur io-base depuis le module IndaSheet.
Le module IndaSheet donne accès à de nouvelles formules dans Excel :
IDB_RANGE : récupération des données d'une métrique entre deux dates
IDB_LATEST : récupération de la dernière valeurs inscrite en base pour une ou plusieurs métriques
IDB_INSTANT : récupération de la valeur saisie à une date
IDB_DATE : renvoie une date au format ISO, qui peut être utilisée dans les formules io-base
Ces formules peuvent être construites à l'aide de l'interface (pour plus de détail, se référer à l'article sur le sujet). Elles peuvent aussi être saisies directement dans une cellule.
Formule IDB_RANGE
Signature de la formule
=iobase.IDB_RANGE(datasource;metric;start_date;end_date;aggregation;[interval];[displayInRow];[displayTimestamp];[displayCount];[displayMetric];[precision])
Les 6 derniers paramètres sont optionnels. Si elles ne sont pas renseignées, les valeurs par défaut sont décrites ci-dessous.
Détail des paramètres
datasource : STRING : nom de la base de données (en général, les données de production se trouvent dans la base de données prod)
metric : STRING : nom de la métrique
start_date : STRING : date de début de la plage. Cette date doit être au format "aaaa-MM-ddThh:mm:ssZ" (format iso).
end_date : STRING : date de fin de la plage. Cette date doit être au format "aaaa-MM-ddThh:mm:ssZ" (format iso).
aggregation : STRING : peut contenir les valeurs suivantes :
MIN : valeur minimale
MAX : valeur maximale
SUM : somme
AVG : moyenne
COUNT : nombre de valeurs
none : aucune agrégation
[interval] : STRING : groupement à appliquer sur l'agrégation. Les valeurs possibles sont en nombre de jours (d), heures (h), minutes (m), secondes (s). Exemple 1d remontera une valeur par jour. Ce paramètre est optionnel, il n'est nécessaire qui si une agrégation est définie
[displayInRow] : BOOLEEN : Permet de définir si les valeurs vont s'inscrire en ligne, ou en colonne. Les valeurs possibles sont :
VRAI : affichage des valeurs en colonne
FAUX : affichage des valeurs en ligne
Par défaut, les valeurs s'afficheront en colonne.
[displayTimestamp] : BOOLEEN : Permet de définir si l'horodatage doit s'afficher avant les valeurs. Les valeurs possibles sont :
VRAI : affichage de l'horodatage dans la première ligne (ou colonne selon le cas)
FAUX : seules les valeurs sont affichées
Par défaut l'horodatage s'affichera.
[displayCount] : BOOLEEN : Permet de définir si le nombre de résultats remontés doit s'afficher avant les valeurs. Les valeurs possibles sont :
VRAI : affichage du nombre de résultats avant les valeurs
FAUX : le nombre de résultats n'est pas affiché
Par défaut, le nombre de résultats ne s'affichera pas.
[displayMetric] : BOOLEEN :Permet de définir si le nom de la métrique doit s'afficher en haut, avant les valeurs. Les valeurs possibles sont :
VRAI : affichage du nom de la métrique en première ligne, avant les résultats
FAUX : le nom de la métrique ne s'affiche pas
Par défaut, le nom de la métrique est affiché
[precision] : STRING : précision qui sera appliquée pour le calcul de l'agrégation. Les valeurs possibles sont en nombre de jours (d), heures (h), minutes (m), secondes (s).
Exemple :
date de début : 01/01/2023
date de fin : 31/03/2023
Agrégation : AVG
Fréquence : 1d
Précision : 1h
La résultat de la requête sera la moyenne par jour du tag. En indiquant une précision, on va forcer la requête à faire des groupement pour améliorer la précision de calcul. Dans ce cas là, un premier calcul de moyenne sera fait toutes les heures de la journée. Puis la moyenne de toutes ces moyennes sera faite pour obtenir la valeur pour la journée. Si en précision on avait saisie 1h, alors la moyenne quotidienne aurait été obtenue en faisant la moyenne de toutes les valeurs horaires.
Si le paramètre n'est pas précisé, la même valeur que l'interval sera renseignée.
Remarques
si une agrégation est sélectionnée, mais qu'aucune fréquence n'est renseignée, alors le calcul se fera sur l'ensemble des valeurs de la plage. Par exemple, en COUNT entre deux dates sans fréquence remontera le nombre de valeurs en base entre la date de début et la date de fin
si une agrégation est sélectionnée, mais qu'aucune valeur sur un des groupements par fréquence n'est trouvé, alors la valeur remontée est 0.
pour la fonction RANGE, il n'est possible d'appeler qu'une seule métrique à la fois
Exemples
=iobase.IDB_RANGE("prod"; B6; A3; B3; "AVG"; "1d"; FAUX; VRAI; FAUX; FAUX)
Avec B6 = nom du tag
A3 = 2023-01-01T00:01:00Z
B3 = 2023-04-18T23:59:00Z
Cette formule va retourner la valeur moyenne journalière du tag entre le 1 janvier 2023 et le 18 avril 2024. Il y aura donc une valeur remontée par jour, affichées en colonne. La première colonne remontera l'horodatage, et la seconde la valeur. Le nom du tag et le nombre de résultats ne seront pas affichés.
Pour gérer des dates dynamiques, il est possible de se servir des formules d'Excel. Par exemple, une cellule peut contenir la date du jour à 23:59, et se rafraîchir automatiquement grâce à la formule suivante :
=CONCAT(ANNEE(MAINTENANT());"-";DROITE(CONCATENER("0";MOIS(MAINTENANT()));2);"-";DROITE(CONCATENER("0";JOUR(MAINTENANT()));2);"T23:59:00Z")
La formule IDB_RANGE peut ensuite s'appuyer sur cette cellule, qui se rafraîchit toute seule.
Formule IDB_LATEST
Signature de la formule
=iobase.IDB_LATEST(datasource;metric;start_date;end_date;aggregation;[interval];[displayInRow];[displayTimestamp];[displayCount];[displayMetric];[precision])
Les 3 derniers paramètres sont optionnels. Si elles ne sont pas renseignées, les valeurs par défaut sont décrites ci-dessous.
Détail des paramètres
datasource : STRING : nom de la base de données (en général, les données de production se trouvent dans la base de données prod)
metric : STRING : nom de la métrique
[displayInRow] : BOOLEEN : Permet de définir si les valeurs vont s'inscrire en ligne, ou en colonne. Les valeurs possibles sont :
VRAI : affichage des valeurs en colonne
FAUX : affichage des valeurs en ligne
Par défaut, les valeurs s'afficheront en colonne.
[displayTimestamp] : BOOLEEN : Permet de définir si le'horodatage doit s'afficher avant les valeurs. Les valeurs possibles sont :
VRAI : affichage de l'horodatage dans la première ligne (ou colonne selon le cas)
FAUX : seules les valeurs sont affichées
Par défaut l'horodatage s'affichera.
[displayMetric] : BOOLEEN :Permet de définir si le nom de la métrique doit s'afficher en haut, avant les valeurs. Les valeurs possibles sont :
VRAI : affichage du nom de la métrique en première ligne, avant les résultats
FAUX : le nom de la métrique ne s'affiche pas
Par défaut, le nom de la métrique est affiché
Remarques
pour la fonction LATEST, il est possible d'appeler plusieurs métriques à la fois. Pour cela, séparer le nom des métriques par des ","
si plusieurs métriques sont sélectionnées, il faut qu'elles fassent toutes parties de la même Source (même base de données). Sinon, il faudra faire des requêtes séparées.
Exemples
=iobase.IDB_LATEST("prod"; "tag1,tag2"; VRAI; VRAI)
Cette formule va retourner la dernière valeur en base pour les métriques tag1 et tag2. Il y aura donc une valeur remontée par métrique, affichées en ligne. La première ligne remontera l'horodatage, et la seconde la valeur. Le nom du tag sera affiché.
Formule IDB_INSTANT
Signature de la formule
=iobase.IDB_INSTANT(datasource;metric;date;[displayInRow];[displayTimestamp];[displayMetric])
Les 3 derniers paramètres sont optionnels. Si ils ne sont pas renseignés, les valeurs par défaut sont décrites ci-dessous.
Détail des paramètres
datasource : STRING : nom de la base de données (en général, les données de production se trouvent dans la base de données prod)
metric : STRING : nom de la métrique
[displayInRow] : BOOLEEN : Permet de définir si les valeurs vont s'inscrire en ligne, ou en colonne. Les valeurs possibles sont :
VRAI : affichage des valeurs en colonne
FAUX : affichage des valeurs en ligne
Par défaut, les valeurs s'afficheront en colonne.
[displayTimestamp] : BOOLEEN : Permet de définir si le'horodatage doit s'afficher avant les valeurs. Les valeurs possibles sont :
VRAI : affichage de l'horodatage dans la première ligne (ou colonne selon le cas)
FAUX : seules les valeurs sont affichées
Par défaut l'horodatage s'affichera.
[displayMetric] : BOOLEEN :Permet de définir si le nom de la métrique doit s'afficher en haut, avant les valeurs. Les valeurs possibles sont :
VRAI : affichage du nom de la métrique en première ligne, avant les résultats
FAUX : le nom de la métrique ne s'affiche pas
Par défaut, le nom de la métrique est affiché
Remarques
pour la fonction INSTANT, il est possible d'appeler plusieurs métriques à la fois. Pour cela, séparer le nom des métriques par des ","
si plusieurs métriques sont sélectionnées, il faut qu'elles fassent toutes parties de la même Source (même base de données). Sinon, il faudra faire des requêtes séparées
si aucune valeur n'existe à l'horodatage exact sélectionné, la requête va remonter la dernière valeur enregistrée en base juste avant l'horodatage choisi
Exemples
=iobase.IDB_INSTANT("prod"; "tag1,tag2"; "2023-04-11T14:45:43Z";FAUX;VRAI;VRAI)
Cette formule va retourner la valeur en base juste avant l'horodatage 2023-04-11T14:45:43Z pour les métriques tag1 et tag2. Il y aura donc une valeur remontée par métrique, affichées en colonne. La première colonne remontera le nom du tag, et la seconde la valeur. Le nombre de résultats ne sera pas affiché.
Formule IDB_DATE
Signature de la formule
=iobase.IDB_DATE([date])
Le paramètre est optionnel. Si jamais il n'est pas renseigné, la formule renverra au format ici la date et l'heure en cours.
Détail des paramètres
[date]: DATE : la date que l'on souhaite avoir au format ISO, pour utilisation dans les autres fonctions de io-base.
Exemples