Dans cet article, je propose une solution simple qui utilise Libre Office pour répondre au problème de “tagger” des dépenses, et produire une présentation synthétique du résultat.
Ouverture du fichier
J’utilise la version LibreOffice 6.0.7.3 00m0(Build:3)
qui est dans les dépôts de ma vénérable Ubuntu 18.04.6 LTS
.
Dans ce fichier, les colonnes sont séparées par des virgules.
On peut aussi bien utiliser la version .tsv
dans ce test
sans que cela ne change grand chose, puisque Libre Office
utilise le point-virgule comme séparateur par default.
Comme pour tous les articles dans cette série de posts, on commence par essayer d’ouvrir un fichier de notre set d’exemples disponible sur GitHub. Dans cet article, nous allons utiliser Libre Office.11 Pour commencer, j’ai utilisé la variante /data/01-sheet-simple.csv qui contient un fichier très court et très simple.22
Les points positifs de Libre Office arrivent assez vite dans ce test :
- On peut choisir l’encodage du fichier.
- Le type de séparateur.
- La ligne de départ.
- Et on a une visualisation en temps réel de la table qui en résulte.
C’est assez intuitif, et je vous redirige vers la figure correspondante pour la capture d’écran qui va bien™.
Visualisation
Passé cette première interface minimaliste, on arrive sur un tableur plutôt complet, dont la capture d’écran correspondante se trouve ici. Il y a désormais plus de choses à dire. Sans surprise pour un logiciel plus généraliste, l’interface est beaucoup plus remplie : on peut calculer (sur notre exemple) que seulement \(35\%\) de l’interface sert à afficher nos données, alors que les \(65\%\) restants sont une multitude de boutons, barres de défilement, options, et autres menus. Pour refaire le calcul, il suffit de mesurer les aires sur la figure suivante.
Cette fonction s’obtient via un clic droit sur le nom de la colonne, comme indiqué dans la capture d’écran suppression des colonnes inutiles.
Cette première analyse est un à charge, car le logiciel n’est pas dédié à notre tâche. Mais cela sert justement de référence pour nos futures itérations. Par ailleurs, il existe une fonction qui permet de « cacher une colonne »,33 ce qui nous fait gagner de la place.
Même s’il paraît étrange à ce stade d’avoir besoin de la fonction « rechercher / remplacer » dans un travail d’annotation de données…
Par ailleurs, certaines des fonctions vont servir, comme par exemple le menu qui permet d’accéder à la fonction « rechercher/remplacer ».44 Enfin, l’espace supplémentaire sur la feuille de calcul va servir à créer un second tableau de synthèse sur nos dépenses.
Annotation des dépenses
Une fois la visualisation corrigée pour avoir assez d’espace à l’écran,
on peut passer à l’annotation à proprement parler. Pour cela, on
créé une colonne supplémentaire savamment intitulée Tag
, et on commence
à remplir. Le fait de ne pas avoir décidé a priori des catégories
ne pose pas un énorme problème parce que le logiciel essaie de compléter
ce que l’on tape à partir des données déjà entrées dans la même
colonne (voir la figure illustrant la complétion automatique).
En revanche, l’annotation à proprement parler n’est pas aisée pour plusieurs raisons :
- La ligne courante n’est pas surlignée, même si le numéro de ligne est
mis en couleur. Cela fait que sur un plus grand nombre de colonnes
on ne peut pas naviguer de manière fiable (sur les versions
02
et03
des feuilles de csv-tagger). - Les informations ne sont pas disposées visuellement : en pratique,
on voudrait utiliser un format différent pour
CB
etVIREMENT
et le nom de l’entreprise. - Les dates ne sont pas compréhensibles facilement : en pratique,
annoter une dépense qui date d’un mois auparavant pose des problèmes
en terme de mémoire, et savoir le jour de la semaine ainsi qu’avoir
un calendrier pour visualiser les différentes dates d’un seul coup
(sur les versions
03
des feuilles de csv-tagger).
Synthèse des dépenses
Ceux-ci sont rentrés à la main, et ne sont pas automatiquement
générés à partir de ce qui existe dans la colonne Tag
du tableur.
Reste à discuter de la création de la feuille de synthèse. Parce que je ne sais pas me servir du logiciel, et que je pars du principe que personne ne le sait, je me limite à une construction simple. Dans des colonnes inutilisées, on crée un tableau dont les colonnes sont les différents tags,55 et deux lignes, une pour les crédits, une pour les débits. Celles-ci sont remplies grâce à la formule suivante :
SUMIF([check-range]; [equal-condition]; [sum-range])
Cela indique au logiciel que la position de cette zone est absolue et non pas relative à la case actuelle.
Le tout se fait très visuellement, comme le montre la capture d’écran des formules, car le logiciel met en avant les zones sélectionnées sur la feuille de calcul. Si on ne s’y prend pas bien, il faudra rentrer \(n \times 2\) formules, où \(n\) est le nombre de catégories, car la technique de « faire glisser la formule » ne marche pas bien dans ce cadre. En faisant un peu attention et en préfixant les zones par un dollar,66 on peut entrer seulement \(2\) formules et « faire glisser ».
De plus, le logiciel (ou sa variante propriétaire) est assez connu du grand public pour que les utilisateurs aient déjà leurs marques.
Le système est assez simple et se met en place en un nombre linéaire de clics,
ce qui est assez appréciable. Cependant, il ne fonctionne pas tel quel, car
Libre Office s’attend à trouver des virgules comme séparateur de
nombre. Ce qui n’est pas le cas des CSV, où ceux-ci sont représentés
avec des points.77 Il faudra donc passer par un petit rechercher remplacer
dans la zone des crédits et débits pour que la magie du SUMIF
opère.
Conclusions
Le système basé sur une feuille de calcul possède les avantages suivants :
De plus, le logiciel (ou sa variante propriétaire) est assez connu du grand public pour que les utilisateurs aient déjà leurs marques.
Attention ! Il ne faut surtout pas sauvegarder le résultat au format CSV, sinon toutes les formules seront perdues.
- Il ne nécessite pas de mise en place complexe, on double clique et on travaille.88
- Le « workflow » est très flexible, et on peut imaginer changer certaines procédures en fonction des colonnes disponibles.
- On peut à tout moment sauvegarder99 le fichier et reprendre son travail plus tard.
- La saisie n’est pas désagréable et assez rapide.
- La création de statistiques simples est facile.
En revanche, les points suivants laissent beaucoup de place à l’amélioration :
Une version plus correcte de cette phrase est que je ne sais pas comment faire.
- On ne tire aucun profit des différents types de champs, tous sont traités comme du texte brut, sauf pour les nombres (et cela demande une opération spécifique).
- L’affichage des dates est problématique.
- Sur beaucoup de colonnes, on s’y perd facilement.
- On ne peut pas1010 facilement “concaténer” deux feuilles, par exemple deux CSV provenant de deux comptes différents.
J’utilise la version
LibreOffice 6.0.7.3 00m0(Build:3)
qui est dans les dépôts de ma vénérableUbuntu 18.04.6 LTS
.↩︎Dans ce fichier, les colonnes sont séparées par des virgules. On peut aussi bien utiliser la version
.tsv
dans ce test sans que cela ne change grand chose, puisque Libre Office utilise le point-virgule comme séparateur par default.↩︎Cette fonction s’obtient via un clic droit sur le nom de la colonne, comme indiqué dans la capture d’écran suppression des colonnes inutiles.↩︎
Même s’il paraît étrange à ce stade d’avoir besoin de la fonction « rechercher / remplacer » dans un travail d’annotation de données…↩︎
Ceux-ci sont rentrés à la main, et ne sont pas automatiquement générés à partir de ce qui existe dans la colonne
Tag
du tableur.↩︎Cela indique au logiciel que la position de cette zone est absolue et non pas relative à la case actuelle.↩︎
De plus, le logiciel (ou sa variante propriétaire) est assez connu du grand public pour que les utilisateurs aient déjà leurs marques.↩︎
De plus, le logiciel (ou sa variante propriétaire) est assez connu du grand public pour que les utilisateurs aient déjà leurs marques.↩︎
Attention ! Il ne faut surtout pas sauvegarder le résultat au format CSV, sinon toutes les formules seront perdues.↩︎
Une version plus correcte de cette phrase est que je ne sais pas comment faire.↩︎