SI.NON.DISP

Vous connaissez certainement la fonction SIERREUR. Elle permet de remplacer la combinaison = SI(ESTERREUR(...)).

Voici une autre fonction qui permet d'identifier l'erreur #N/A, au lieu d'utiliser =SI(ESTNA(...)).

Elle s'utilise de la même manière que SIERREUR :

=SI.NON.DISP(valeur, valeur_si_na)

Quand utiliser l'une par rapport à l'autre?

Evidemment, cela dépend de la situation.

  • Si vous ne voulez capturer que l'erreur NA, le cas le plus courant étant une RECHERCHEV ou un INDEX/EQUIV, alors, utilisez SI.NON.DISP
  • Si vous voulez capturer toutes les erreurs, alors on utilise SIERREUR.

Par exemple, supposons que vous vouliez retouner la valeur du CA pour la ville sélectionnée, en gérant l'erreur.

Si la valeur cherchée existe (Lille), mais qu'elle renvoit une valeur d'erreur (ici #DIV/0), la fonction SI.NON.DISP va retourner la valeur d'erreur, ce qui est une bonne chose, car l'information retournée est plus précise. La fonction SIERREUR retourne le message d'erreur indiqué dans la formule.

Dans le cas de Parris (avec deux "r"), les deux fonctions vont retourner le message d'erreur indiqué dans la formule.

Question subsidiaire, mais pourquoi n'ont ils par utilisé la fonction SINA !!!

PS : pour en savoir plus sur la combinaison INDEX/EQUIV, regardez cette série de vidéo :

Gérer l'ajout manuel de données dans une table liée à un fichier externe

L'objectif est d'ajouter des données à une table qui est liée à un fichier externe (par ex. une extraction CSV). Lors de l'actualisation du fichier externe - ajout ou suppression de ligne, tri - les données ajoutées dans le fichier excel restent connectées à la bonne clef.

Vous pouvez voir cette procédure en vidéo ici : https://www.xlerateur.com/divers/2019/10/07/powerquery-conserver-les-donnees-saisies-dans-excel-et-liee-a-une-requete-externe-9839/

Pré-requis important

Pour que cette procédure fonctionne, il faut absolument une clef primaire dans le fichier source. La clef primaire ne doit pas contenir de doublons et ne doit pas avoir de cellules vides.

Fichier exemple (CSV)

Cliquez sur le lien ci-dessous pour télécharger le fichier exemple.

Créer une connexion au fichier CSV (ou tout autre fichier)

  • Données, À partir d'un fichier texte/CSV, choisir le fichier, puis Charger.
  • Ajouter la ou les colonnes à modifier manuellement, par exemple un commentaire.

Copier le code via PowerQuery

  • Ajouter temporairement la table dans powerquery pour copier le code lié à la création de cette requête.
  • Aller dans Accueil - Editeur avancé, puis copier les deux lignes.
  • Fermer powerquery et ne pas enregistrer (ignorer).

Editer la première requête

  • Revenir sur la requête initiale de connexion au CSV.
  • Editer la requête dans l'éditeur avancé.

Voici les différents endroits où il faut faire des changements :

  • Renommer la dernière étape SQLData .
  • Ajouter une virgule.
  • Coller les deux lignes à la suite de cette virgule.
  • Remplacer source par source2 sur les deux dernières lignes avant le "in".
  • Remplacer #"type modifié" par DataWithComments.
  • Valider avec OK.

Ca va donner ceci :

Fusionner les requêtes

  • Accueil, Combiner, Fusionner des requêtes
  • Ajouter (nomrequete(actuelle))
  • Sélectionner la clef
  • External gauche

Renommer datawithcomments par SQLData. C'est l'une des étapes clefs, car cela crée la récursivité nécessaire.

Dans la dernière colonne, choisir développer et conserver les champs à compléter manuellement. Il est important de garder le même nom sans ajouter le nom de la table.

Finalement, Fermer la requête.

Si une deuxième colonne commentaire est créée - Commentaires2 - vous pouvez la supprimer.

Tester en ajoutant des informations dans la zone de commentaires, puis en supprimant ou en ajoutant des lignes dans le fichier CSV, et finalement en actualisant pour vérifier que les commentaires sont toujours bien sur la ligne correspondant à la bonne clef.

Bon courage !