Sommaire
Qu’est‐ce que ça peut m’apporter ?
À l’usage, les gains de temps observés se situent à plusieurs niveaux :
durant la phase d'exploration de données (analyse)
Les acteurs métiers (comptabilité, RH, administratif, etc.) sont autonomes durant cette phase ; sans Illico, les collègues de l'informatique devaient jusqu'à présent leur développer des routines (macro, scripts, programme dédié) de corrections de données ou de transformation de la structure des données comme des pivots de colonnes/lignes.
Ces développements sont souvent trop en lien avec la structure des données ou avec le langage de programmation fétiche du développeur et à chaque nouveau chantier qualité de données il fallait re-développer (parfois dans une autre techno).
Généralement juste ajouter une nouvelle colonne imposait de vérifier toutes les routines : c'était très sensible aux données et au final assez laborieux.
S'il s'agit d'un projet de reprise de données (exemple : export d'une base de données, nettoyage puis ré-importation), des fonctionnalités très typées base de données (champs null, valeurs uniques, longueurs des champs, normalisation selon Merise, etc.) sont présentes dans Illico.
durant la phase de correction
Les acteurs métiers peuvent corriger en masse dans Illico et le résultat sera exporté dans un fichier CSV (ou par un copier-coller global vers un tableur). On évite ainsi de manipuler des données de production et aussi de devoir créer un environnement de test juste pour permettre aux utilisateurs de vérifier/corriger leurs données.
Illico produit un journal de bord, une sorte de documentation auto-générée par l'outil.
Une fois que les acteurs métiers ont réalisé un premier nettoyage et que des équipes informatiques doivent implémenter/automatiser les mêmes étapes (dans un ETL, un sas de nettoyage de données, etc.), Illico et le journal de bord deviennent une aide précieuse pour tester rapidement la qualité de l'implémentation.
durant la phase de restitution
Illico permet de produire des tableaux de synthèse (exemple tableaux croisés dynamiques à plusieurs niveaux de profondeur),
en général (exemples)
Vous connaissez sûrement ces situations :
- pour un nouveau projet informatique, on a besoin de transformer des données d'un format à un autre dans la phase de chargement initial de données ;
- pour tout projet de refonte d'application avec reprise des données, on cherche à passer d'un format source à un format cible (exemple : la structure de la base de données relationnelles est différente) ;
- dans le cas de préparation d'un annuaire ou d'une liste d'individus à contacter (préparation d'un publipostage, ou mass-mailing), on veut harmoniser la présentation des informations (majuscules etc.) ;
- dans les métiers supports (administratif, RH, compta, etc.), on souhaite créer une liste d'individus (liste des promouvables, liste des personnes à évaluer, liste des personnes éligibles, etc.) en appliquant successivement plusieurs règles métiers d'ajout/soustraction :
- liste de départ : tout le monde ;
- on filtre : on conserve ceux qui ont droit ;
- on soustrait : ceux qui ont déjà eu ;
- on ajoute : ceux qui n'ont pas pu avoir ;
- on soustrait : ceux qui partiront avant la date d'effet ;
- on rajoute : ceux qui arriveront d'ici la date d'effet.
Sans outil, ce type de gymnastique peut devenir très chronophage.
Pourquoi un outil de plus ?
le constat
Quel que soit votre métier et votre besoin, il vous faudra une excellente connaissance des données ET un outil particulièrement accessible et souple. Mais quel outil ? un tableur, une base de données, une base du type Access, Kexi ou FileMaker, un script, une nouvelle application dédiée ? …
Existe-il un outil qui couvre tous les types d'actions ? ou un-e collègue qui connaisse tous les outils/techno qui pourrait servir ici ? et qui soit disponible pour vous aider ?
Faut-il faire monter en compétence les acteurs métiers à des outils techniques (SQL ? macro VBA ?) ou former les programmeurs à des problématiques métiers ? À l'exception des administrateurs technico-fonctionnels, avoir une double expertise ne semble pas très pertinent (surtout si l'expert-comptable ne se sert du SQL que 2 fois dans l'année).
Est-ce un problème insoluble ?
la solution théorique
La solution paraît simple sur le papier :
- apporter un outil accessible aux utilisateurs métiers pour s'affranchir d'un coût d'apprentissage technique très conséquent ;
- (pour faire simple) que cet outil soit aussi efficace qu'un développeur/adminDB.
Illico : un outil ou une approche ?
Il existe actuellement des outils très pertinents pour aider au nettoyage des données. Certains peuvent s'avérer assez lourds (licence, techno, machine puissante, dépendances) ou juste inconnus/hors de portée des acteurs métiers qui en ont besoin.
Illico tente de pallier à cela dans une approche originale où toutes les fonctionnalités se présentent de la même manière et demandent (selon les paramètres, et en moyenne) entre 2 et 4 clics.
Par exemple, les actions suivantes se réalisent de la même façon :
- faire un pivot complexe ;
- mixer des colonnes A et B avec une règle spécifique (exemple : prendre la valeur de B quand celle de A est vide sinon prendre celle de A) ;
- visualiser un tableau croisé dynamique ;
- traiter des données en liste (dans une même cellule/case) ;
- faire un pivot ou mettre une colonne en majuscule ;
- supprimer les lignes vides.
Il n'y a en réalité pas de raison pour que mettre une colonne en minuscule soit plus simple à programmer que faire une différence symétrique entre deux sources de données. À l'oral, il faut 2-3 secondes de plus pour l'exprimer ? eh bien dans Illico, ce sera 2-3 clics supplémentaires, pas plus !
En pratique, ça se passe comment ?
livré clé en main
Vous pouvez tester ou utiliser la version en ligne (les données ne quittent pas votre poste) ou la télécharger en local :
- téléchargez ;
- décompressez ;
- ouvrez la page index.html (c'est une copie conforme du site officiel qui inclut la documentation et le tutoriel de prise en main) ;
- cliquez sur « accès direct », vous y êtes.
Vous pouvez consulter la documentation utilisateur complète avec des exemples ou tout simplement suivre le tutoriel de prise en main (qui comprend un fichier d'exemple).
le moins d'étapes possibles
Dans Illico, il n'y a pas d'étapes préliminaires de description du format de la source de données (nombre de colonnes, types de données, etc.).
- Vous copier-collez vos données depuis un tableur ou vous importez un fichier CSV et dans les deux cas le séparateur de colonne est automatiquement détecté (vous pouvez le forcer au besoin) ;
- vous appliquez une transformation ;
- vous analysez le nouvel état des données ;
- vous exportez, annulez ou poursuivez avec une autre transformation.
un petit aperçu
le domaine de valeur
Équivalent à un tableau croisé dynamique sur 1 dimension avec total et ratio… en 1 clic.

Le tableau de synthèse est exportable au format HTML ou CSV.
l'analyse et traitement des doublons

Il est possible d'identifier les doublons sur plusieurs colonnes (le même nom, les mêmes nom et prénom, les mêmes nom et prénom et email, etc.).
Au choix, le traitement des doublons sera de les :
- filtrer (conserver) ;
- exclure (suppression) ;
- marquer (ajoute une colonne en début de tableau avec un identifiant pour chaque groupe de doublons) ;
- marquer et filtrer ;
- analyser (tableau de synthèse).
exploration de données
Enchaînements de tableaux croisés dynamiques
On compte le nombre de vacations :
- par service (axe service) ;
- puis lorsque l'on clique sur le service, un second tableau la répartition des vacations par individu (axe contact).
À chaque tableau de synthèse, le jeu de données correspondant est exportable HTML ou CSV ainsi que le tableau de synthèse.

Illico, en résumé
fonctionnalités utilisateur
- import CSV : UTF-8 ou ISO-8859-1 ;
- export CSV : UTF-8 (+ BOM) ;
- import/export par copier-coller ;
- possibilité d'annuler la dernière transformation ;
- journal de bord intégré (qui indique aussi les actions annulées) ;
- plus de 100 transformations de données :
- analyser : formats de données, tri à plat ;
- croiser, enrichir ou exclure depuis deux sources ;
- modifier en masse ou selon des conditions ;
- opérations sur des listes (plusieurs valeurs dans une même cellule/case) ;
- convertir des formats ;
- rapprocher : accents, suppression des "blancs" (trim), distance d'édition ;
- filtrer, dédoublonner, échantillonner ;
- agréger, explorer : tableaux croisés dynamiques ;
- pivoter, transposer ;
- et bien d'autres !
code source
- environ 10 000 lignes de LOC strictes (HTML/JS) ;
- code-source JS principal = 1/3 de commentaires, 2/3 d'instructions ;
- environ 280 fonctions JS ;
- 0 dépendance/bibliothèque/code-tiers ;
- le code est vérifié sous JSHint.
à propos du code-source JS
- rares dépendances entre les fonctions (limite les effets de bord) ;
- la quasi-totalité des algorithmes sont basés sur des parcours de tableaux ;
- le code-source JS suit une convention de nommage des variables en fonction de leur usage (i j k pour un compteur, v pour une valeur du tableau de données (String), t pour un texte plutôt long, n pour un nombre, e pour un élément HTML, a pour un array, etc.).
// quand on lit
a[i] // a représente un array simple (i est un numérique)
// quand on lit
a[v] // a représente un array associatif (v est une chaîne).
Ce qui permet à la lecture de toujours savoir sur quel type d'objet on est.
Et les variables les moins utilisées ont des noms plus explicites.
Les algorithmes assez courts + la convention de nommage + des fonctions cloisonnées permettent de visualiser les 3/4 des fonctions dans la hauteur de l'écran sans scroller (40 LOC pour un 15").
Nota bene : les revues de code sont l'occasion soit de clarifier la convention soit de rectifier les noms des variables dans le code source respecter au mieux la convention.
La convention est indiquée dans la rubrique architecture de la documentation.
Cas concrets d'utilisation
tableaux croisés dynamiques
Un logiciel métier RH (ressources humaines) exporte un listing des situations des agents mais d'une façon qui ne permet pas d'utiliser des tableaux croisés dynamiques ;
Illico permet de basculer des colonnes, des groupes de colonnes en autant de lignes (pivot) pour se retrouver sur un format plus facile à utiliser.
données d'annuaire
Un export d'un annuaire fournit des coordonnées sous la forme
Mr X | téléphone : 0123456789, fax : 032165478
Mme Y | email : yy@abc.com, téléphone : 0546789123
Illico permet, en une opération, de transformer les coordonnées en trois colonnes : téléphone, fax, email, quelque soit l'ordre des informations qui y figuraient.
normalisation
Pour préparer une base de données relationnelles, on a au départ un grand fichier de données et il faut créer les identifiants (clé primaire/étrangère) pour les relations entre les deux tables. Illico va normaliser (normalisation Merise) les données et préparer un identifiant).
En une opération, Illico remplace les valeurs par les identifiants et affiche la table de correspondance.
vérifier des données avant de les charger en base
Avant de charger un csv dans une base de données, on cherche souvent à vérifier la longueur des champs, si les valeurs sont uniques, si le type alpha ou numérique est bien respecté, les valeurs minimum et maximum pour des numériques, etc. Illico permet de vérifier cela en un seul clic.
Une autre fonctionnalité supprime les lignes qui ne contiennent aucune valeur pour certaines colonnes. Cela évite de charger des données en base de données et d'avoir des rejets lors de l'import ou plus exactement, cela permet de détecter en amont de l'import toutes les lignes qui vont être rejetées.
préparer des jointures
Lors d'une jointure (croisement) entre deux sources de données A et B par exemple deux tables d'une base de données relationnelle, il est difficile de connaître rapidement les données de A qui ne sont pas dans B et en même temps celles de B qui ne sont pas dans A.
À partir de deux fichiers CSV (A et B), Illico produit un tableau de synthèse avec ces informations et permet de choisir la jointure que l'on souhaite réaliser.
Cela permet aussi de détecter avant la jointure les cardinalités entre les deux sources. Par exemple on s'attend à trouver uniquement du 1-1 entre deux sources. Et quand on simule, on observe avec la simulation du 1-0 (des valeurs de A sont absentes de B), du 1-1 (des valeurs de A se retrouvent dans B) et du 1-n (des valeurs de A se retrouvent à plusieurs reprises dans B).
préparer des données multi-lignes
Pour constituer un annuaire agréable à consulter, on peut partir d'une liste d'individus avec en colonne : le nom, le prénom, la fonction, les coordonnées et l'email et d'autres données.
Pour des raisons esthétiques, on souhaite présenter les données autrement avec, pour une même ligne du tableau, regrouper dans la même cellule/case du tableau les informations suivantes
NOM Prénom
fonction (en rouge)
coordonnées
email (lien cliquable)
NOM Prénom
fonction (en rouge)
coordonnées
email (lien cliquable)
Comme Illico repose sur HTML/JS, il est facile d'intégrer des balises HTML de mise en forme (couleur, gras, a/href) et un saut de ligne BR
et de les récupérer par copier-coller vers un tableur ou un traitement de texte.
Ici, il y a trois étapes :
- la couleur ;
- la balise a/href pour l'email ;
- la concaténation de 5 colonnes.
Nota bene : des transformations sont disponibles pour le gras, l'italique, le barré, augmenter/diminuer la taille, mettre en couleur, ou enlever la mise en forme. Des options permettent à tout moment d'interpréter ou au contraire de rendre apparente/visible ces balises/mises en forme HTML sans les interpréter.