Date: prev next · Thread: first prev next last
2022 Archives by date, by thread · List index




Bonjour Etienne

la proposition d'Hervé est complète et élégante.

Tu peux "récupérer" les N/D (dans LibreOffice au lieu de N/A dans Excel) avec une condition et remplacer dans ce cas le résultat par "" => cellule "vide" (en réalité non pas vide mais sans valeur numérique)

Le plus simple pour récupérer une erreur est d'utiliser Sierreur

La description de la fonction sierreur : https://help.libreoffice.org/7.4/fr/text/scalc/01/04060104.html?DbPAR=CALC#bm_id31470811

Ensuite, le souci pour faire une recherche sur le nom botanique seul c'est bien qu'en 2020, c'est pas trés propre et tu n'as pas de colonne qui ne contienne que cette valeur.

- Soit tu ne t'en préoccupes pas en considérant que les ages en 2022 d'une même espèce botanique existaient en 2020, c'est ce que te propose Hervé, et je répètes, ça parait franchement correct.

- soit il faut un peu nettoyer. c'est à dire isoler en 2020 l'espèce botanique et son age. C'est à dire couper la chaine de caractères au bon endroit, où la remplacer quand il faut :

- Quand on regarde cette liste un peu fusionnée avec l'age, il y a des lignes, où il semble qu'il n'y ait pas d'age... Lonicera nitida 'Maigruen' P9.

- on ne peut donc pas couper en se basant sur le dernier espace (les ages sont toujours précédés par un espace, mais le + n'est pas encadré par un espace... c'était une solution tentante !)

- on ne peut pas se baser sur un remplacement des chiffres (ou bien on remplacera P9 par P

- il semble (si ton fichier présente tous les cas possibles) qu'en se basant sur la position du premier + de l'age (en partant de la gauche) oin puisse séparer le nom botanique de l'age.

Alors allons-y :

Pour isoler le nom botanique selon cette logique, dans une nouvelle colonne :

GAUCHE(B10;CHERCHE("+";B10)-3)

on cherche la 1ère position du "+" dans la colonne B. Pour n'avoir que le nom botanique, on enlève 3 à cette position (le +, le premier age, l'espace)

Description des fonctions Gauche et cherche :

https://help.libreoffice.org/7.4/fr/text/scalc/01/04060110.html?DbPAR=CALC#bm_id3147083

https://help.libreoffice.org/7.4/fr/text/scalc/01/04060110.html?DbPAR=CALC#bm_id3151005

En bonus, tu peux en profiter pour créer une colonne age en 2020, ce qui te donnera une feuille "redressée", bien plus exploitable. (on fait ça en coupant par la droite, en fonction du nombre de caractères déjà coupés).

Ta feuille est nettoyée mais pour l'utiliser comme source, tu peux vite être gêné par la ligne "feuillus".

En toute rigueur, tant que l'on n'est pas sur une présentation finale, cette information doit être dans une colonne dédiée, les données devant être en colonnes et sans interruption. Quand tu auras ce qu'il faut tu pourras réagencer (sur une nouvelle feuille de présentation par exemple). N'oublies pas que l'on peut masquer les colonnes ou les feuilles "de construction" (et même les protéger...)

Bref, ce n'est pas indispensable, mais pour simplifier je te propose de créer une autre feuille "base botanique" avec le nom botanique et le nom simplifié, on en profite pour éliminer les doublons (puisqu'il y avait une ligne par age) via un filtre standard voir https://help.libreoffice.org/7.4/fr/text/scalc/guide/remove_duplicates.html?DbPAR=CALC#bm_id3153896

Comme ta base de recherche est le nom botanique, il doit être en 1er, le nom simplifié en 2e (les manips d'Hervé d'évitent de respecter ces conventions, hein, c'est pourquoi j'insiste, ce qu'il t'a proposé pourrait suffire). On en profite pour trier par nom botanique (histoire de pas se poser des questions ensuite...)

A partir de là tu n'as plus besoin de jongler, et tu peux te contenter d'un recherchev. Et tu as un fichier plus propre et exploitable tous les ans ;-)

je recherche donc le nom botanique, je renvois le nom simplfié, c'est quasi mot pour mot ce que tu demandes, et c'est à peu de choses prêt la définition de la fonction recherchev

description de la fonction recherchev https://help.libreoffice.org/7.4/fr/text/scalc/01/04060109.html?DbPAR=CALC#bm_id3153152

Le résultat est à cette adresse, j'ai utilisé le sierreur d'ailleurs à chaque fois ;-)

https://f2l.retzien.fr/1666197919-94/Tarif_Automne_2022_forum-nettoye-recherchev.ods

Bonne soirée

Claire

Le 2022-10-04 17:41, Etienne a écrit :

Bonjour Hervé,

Tout d'abord merci de ta réponse.

Le 04/10/2022 à 13:42, Herve ROUSSEL a écrit :

Dans le fichier j'ai ajouté les formules dans les colonnes K, L et M de la feuille "Tarif 2022".

1. La fonction Match va permettre de renvoyer la position d'un
élément recherché dans une ligne ou une colonne de table unique
(dixit l'aide...).
Pas besoin que les données dans la ligne ou la colonne soient triées.
Si un ou plusieurs doublons existent seule la position du premier
élément trouvé sera renvoyée.
Ok.

1.

Dans ton exemple, l'élément à rechercher est le "nom botanique
avec la taille" de la feuille "Tarif 2022" (car ce sont les
éléments qui sont en commun entre la feuille "Tarif 2022" et la
feuille "2020").
Cet élément devra être recherché dans la feuille "2020" dans la
colonne "nom botanique" (colonne B).

Pour l'exemple "Pinus nigra 'Nigra' (Austriaca)" (ligne 33  de la
feuille "Tarif 2022"), le "nom botanique avec la taille" est la
cellule D33.
Dans la feuille "2020", ce nom est à chercher dans la colonne B
soit plus précisément dans la plage de cellule B10:B402.
Dans la cellule K33 de la feuille "Tarif 2022" j'ai écrit la
formule : =MATCH(D33;$'2020'.$B$10:$'2020'.$B$402;0)
Le dernier paramètre de la fonction Match est "0", cela permet de
chercher les éléments identiques.
Cette formule renvoie le nombre 24.
Cela veut dire que cet élément a été trouvé dans la plage de
cellule et il est à la ligne 24 de la plage de cellule (cela ne
correspond pas au numéro de ligne de la feuille de calcul car la
page commence à B10 et pas B1).
Ok.

1. Si l'élément recherché n'est pas trouvé, la formule renvoie un
code erreur "#N/A".
Pourrait-on afficher une cellule vide dans ce cas  ?

1.

2. La fonction Index renvoie une valeur à partir d'une table, le
numéro de ligne et de colonne étant donnés (dixit l'aide...).
Les noms communs que tu souhaites récupérer sont dans la colonne A
de la feuille 2020 : plage A10:A402.

Pour l'exemple "Pinus nigra 'Nigra' (Austriaca)", le nom commun
est à la 24ème ligne de la plage A10:A402.
Dans la cellule L33 de la feuille "Tarif 2022" j'ai écrit la
formule :  =INDEX($'2020'.$A$10:$'2020'.$A$402;K33;1)
Cette formule va renvoyer le contenu de la cellule se trouvant
dans la plage de cellule A10:A402 de la feuille "2020", au numéro
de ligne K33 (soit 24, c'est le résultat de la formule de la
cellule K33) et dans la colonne 1 (puisqu'il y a qu'une seule
colonne), soit "Pin noir d'Autriche".

3. Dans la cellule M33 de la feuille "Tarif 2022" j'ai écrit la
formule :
=INDEX($'2020'.$A$10:$'2020'.$A$402;MATCH(D33;$'2020'.$B$10:$'2020'.$B$402;0);1)
Cette formule regroupe les 2 formules des cellules K33 et L33 en
une seule formule (en remplaçant K33 par sa formule).

4. Ensuite j'ai copié la formule sur toutes les cellules nécessaires
de la feuille "Tarif 2022".
Comme tu le verras, un certain nombre de "#N/A" apparaissent, cela
correspond aux lignes où l'élément identique n'a pas été trouvé.
Par exemple dans la feuille "Tarif 2020", il y a "Abies frasserii
2+1" et dans la feuille "2020" il y a "Abies frasserii 2+2".

J'espère que ces explications sont claires et que cela t'aidera.
Bonne continuation.
Bonne journée.
Cordialement.
Hervé
Questions :

1) Quand "#N/A" apparaît, pourrait-on afficher une cellule vide dans ce cas à la place de "#N/A" ?

2) autre question :

Dans la remarque 4 ci dessus, en fait il ne faudrait rechercher que le nom botanique sans l'âge du plant qui est 2+2 dans l'onglet 2020 pour Abies frasserii 2+2. Donc, il faut rechercher (si faisable bien sur) Abies frasserii seulement.

Encore merci.

Cordialement,
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.