Calc : GAUCHE et somme dans une seule cellule, possible ?

Bonjour,

Je me demande si on peut faire plus simple pour le même résultat.
J’ai un tableau qui comporte, entre autres, je vous fais grâce de toutes les colonnes :
— un nom de produit
— le type de produit
— sa référence, laquelle est formée des trois lettres du type de produit plus un numéro qui s’incrémente automatiquement.

Pour obtenir la référence j’ai une première colonne qui va chercher les trois premières lettres à gauche du type de produit, ce qui donne <tro> pour <trousse> et <mot> pour <motif> par exemple.

J’ai une deuxième colonne dans laquelle j’ai saisi le numéro 1 en première ligne, ensuite, j’ai une formule qui dit que SI le nom de produit est supérieur à 0, je dois avoir le résultat de la cellule au dessus plus 1, ça donc : « =SI(A3>0 ; P2+1 ; " ") ». Ça me permet d’avoir la formule sur un paquet de cellules en dessous et de saisir les données plus facilement et en continu.

Donc pour avoir la référence je concatène les deux colonnes ci-dessus (oui, cellule par cellule) en ajoutant un tiret au milieu, ce qui donne : tro-1, mot-2, etc.

Ça fonctionne bien mais je me demande s’il n’y aurait pas eu moyen de tout faire en une seule opération, uniquement parce que je trouve que ça serait plus élégant (de toute façon les colonnes qui me servent de pivot sont masquées). Je ne suis pas arrivée à avoir la fonction GAUCHE et la fonction SI dans une seule cellule. J’ai essayé avec GAUCHE et SOMME sans succès non plus.

Est-ce que c'est possible ?

Bonjour,

SI tu as ton produit en colonne A

Tu peux mettre ta référence en colonne B par la formule suivante

Pour la première =SI(A2<>"";GAUCHE(A2;3)&"-"&"1")
Pour les suivantes =SI(A3="";"";GAUCHE(A3;3)&"-"&CNUM(DROITE(B2;1)+1))
Ensuite tu n'as plus qu'à étirer la seconde formule

Claude

Merci. Ça marche !

J'essaie de comprendre ce que j'ai fait (à part copier-coller et adapter "géographiquement" la formule évidemment) :

1/ fonction SI qui affiche le résultat avec la mise en forme voulue (le tiret de séparation) si la cellule n'est pas vide.
2/ fonction SI qui extrait à gauche les lettres du type de produit et à droite le numéro de la cellule au dessus en ajoutant une unité si la cellule n'est pas vide.

Intéressant de voir que, dans le premier cas, c'est si la condition se vérifie qu'on a un résultat, et que, dans l'autre c'est si la condition ne se vérifie pas.

Bonjour Ysabeau,

Un petit fichier exemple serait le bienvenu :wink:

Cordialement
Mr Sandy-Pascal Andriant

Bonjour

Ysabeau-2 wrote

Pour la première =SI(A2<>"";GAUCHE(A2;3)&"-"&"1")
Pour les suivantes =SI(A3="";"";GAUCHE(A3;3)&"-"&CNUM(DROITE(B2;1)+1))
Ensuite tu n'as plus qu'à étirer la seconde formule

Merci. Ça marche !

Pas testé mais cela ne marche que s'il n'y a pas plus de 10 articles...

Ci-joint une autre solution avec une seule formule (même
formule pour la première référence).

Nota: j'ai mis volontairement deux calculs de référence
(sur mot entier et sur les 3 premiers caractères) pour
illustrer le fait que ta solution de référencement
(sur 3 caract. donc) implique qu'aucun type ne soit
en doublon dans ce cas... (violon/violoncelle,
contrebasse/contrebasson).

IdentifiantAuto.ods
<http://nabble.documentfoundation.org/file/n4072988/IdentifiantAuto.ods>

(je n'ai pas mis le "-", purement cosmétique, pour faciliter la
compréhension.

Cordialement
Pierre-Yves

Bonjour

Ysabeau-2 wrote

Pour la première =SI(A2<>"";GAUCHE(A2;3)&"-"&"1")
Pour les suivantes =SI(A3="";"";GAUCHE(A3;3)&"-"&CNUM(DROITE(B2;1)+1))
Ensuite tu n'as plus qu'à étirer la seconde formule

Merci. Ça marche !

Pas testé mais cela ne marche que s'il n'y a pas plus de 10 articles...

Ouaip, j'ai vu, mais j'ai corrigé à la dixième occurrence et je suis bonne jusqu'à la centaine là... il y a de quoi voir venir.

Ci-joint une autre solution avec une seule formule (même
formule pour la première référence).

Je ne me suis pas penchée en détail dessus mais...

Pour reprendre l'exemple, j'ai déjà une feuille "par pupitre". Le numéro de référence est en continu à l'intérieur de chaque pupitre ce qui me permet de savoir rapidement à combien j'en suis (j'ai aussi fait une feuille récapitulative, mais là n'est pas la question) entre autres. Dans ta proposition, que je garde sous le coude, ta numérotation est par type d'instrument (les violons, les altos etc.), ce qui, dans mon optique actuelle, ne va pas : les bois sont rangés ensemble, les cuivres ensemble... et en comptant tous les objets rangés au même endroit, on sait tout de suite si tout est là ou pas (en gros, évidemment si une clarinette s'est glissée au milieu des violons, on risque de passer à côté). Avec ton système non.

Nota: j'ai mis volontairement deux calculs de référence
(sur mot entier et sur les 3 premiers caractères) pour
illustrer le fait que ta solution de référencement
(sur 3 caract. donc) implique qu'aucun type ne soit
en doublon dans ce cas... (violon/violoncelle,
contrebasse/contrebasson).

Cela dit, grâce à ta remarque je me suis rendue compte de la faille de mon système, à savoir qu'il me fallait une liste de type d'objets différente (en tous cas avec des lettres de début différentes) par "pupitre".

IdentifiantAuto.ods
<http://nabble.documentfoundation.org/file/n4072988/IdentifiantAuto.ods>

(je n'ai pas mis le "-", purement cosmétique, pour faciliter la
compréhension.

En tous cas merci beaucoup. Ça m'a été bien utile et je vais jeter un autre coup d’œil plus approfondie sur le formule qui peut me servir dans un autre cadre.

Bonjour,

merci, en fait j'ai eu des propositions intéressantes.

Ysabeau-2 wrote

Ouaip, j'ai vu, mais j'ai corrigé à la dixième occurrence et je suis
bonne jusqu'à la centaine là... il y a de quoi voir venir.

Si cela te convient...

Ysabeau-2 wrote

Je ne me suis pas penchée en détail dessus mais...

Moi je m'étais penché en détail sur ta question...

Faire l'effort de joindre un exemple de document facilite la vie
des personnes tentant d'aider... et qui, elles, fournissent un
exemple.

Dans le détail:

Ysabeau-2 wrote

Dans ta proposition, que je garde sous le coude, ta numérotation est par
type d'instrument (les violons, les altos etc.), ce qui, dans mon
optique actuelle, ne va pas

Dans mon exemple ce n'est pas une feuille récapitulative.
Remplace "violon" par "trousse" et "contrebasse" par "motif" et
tu retrouves exactement ta demande "par type de produit".

Il suffit bien sûr de trier la feuille pour obtenir les données rangées
par type. À noter que la formule proposée permet de trier "sans
dommage", ce que ne permet pas aussi sûrement les solutions à
base de plusieurs formules (une pour le premier item, une pour le
second, une pour le dizième...).

Tu peux tout aussi bien avoir une feuille par type et utiliser
la même (et unique) formule. Tu peux enfin garder cette
solution sous le coude, ou pas, je dois dire que cela ne me
préoccupe guère :slight_smile:

Pierre-Yves

Ysabeau-2 wrote

Ouaip, j'ai vu, mais j'ai corrigé à la dixième occurrence et je suis
bonne jusqu'à la centaine là... il y a de quoi voir venir.

Si cela te convient...

Ysabeau-2 wrote

Je ne me suis pas penchée en détail dessus mais...

Moi je m'étais penché en détail sur ta question...

J'ai vu, merci, mais je préfère remercier d'abord et prendre du temps ensuite d'étudier plus en avant. Surtout que ta formule est complexe et que je voudrais bien la comprendre avant de faire quoi que ce soit. Parce que, copier-coller une fonction sans la comprendre ne me paraît pas très intéressant.

Faire l'effort de joindre un exemple de document facilite la vie
des personnes tentant d'aider... et qui, elles, fournissent un
exemple.

Honnêtement, cela prend plus de temps d'expliquer comme je l'ai fait que de fournir un exemple... Et on reste prisonnier de l'exemple.

Dans le détail:

Ysabeau-2 wrote

Dans ta proposition, que je garde sous le coude, ta numérotation est par
type d'instrument (les violons, les altos etc.), ce qui, dans mon
optique actuelle, ne va pas

Dans mon exemple ce n'est pas une feuille récapitulative.
Remplace "violon" par "trousse" et "contrebasse" par "motif" et
tu retrouves exactement ta demande "par type de produit".

Merci, j'avais compris l'adaptation, mais en fait non. Parce qu'en fait j'ai une numérotation en continu dans la feuille (et une feuille par grande catégorie), avec les lettres du type de produit devant. Ta solution dès que tu changes de type de produit, tu recommences la numérotation. Ce qui ne m'intéresse pas dans le cas présent. En fait, ça m'aurait probablement intéressé si je ne travaillais pas déjà sur ce classeur (en production).

Il suffit bien sûr de trier la feuille pour obtenir les données rangées
par type. À noter que la formule proposée permet de trier "sans
dommage", ce que ne permet pas aussi sûrement les solutions à
base de plusieurs formules (une pour le premier item, une pour le
second, une pour le dizième...).

Là, on est bien d'accord aucune solution n'est parfaite, mais bon. Chaque version a ces défauts et ses qualités.
Cela dit je ne vois pas que cela pose de problèmes de filtres particulier.
Cela dit, la fonction SI, je ne l'ai utilisée que parce que LibreOffice n'a pas (encore) d'équivalent de la fonction "Travail en tableau".

Tu peux tout aussi bien avoir une feuille par type et utiliser
la même (et unique) formule. Tu peux enfin garder cette
solution sous le coude, ou pas, je dois dire que cela ne me
préoccupe guère :slight_smile:

C'est-à-dire que, je me demandais s'il y avait d'autres solutions envisageables.

Ysabeau-2 wrote

Honnêtement, cela prend plus de temps d'expliquer comme je l'ai fait que
de fournir un exemple...

Alors c'est dommage car je n'avais pas compris tes explications.

Ysabeau-2 wrote

j'ai une numérotation en continu dans la feuille (et une feuille par
grande catégorie), avec les lettres du type de produit devant.

Ok, dans ce cas tu peux mieux gérer les nombres > 10 avec
ceci comme 2ème formule:

=SI(A3="";"";GAUCHE(A3;3)&"-"&CNUM(STXT(B2;5;NBCAR(B2)))+1)

ou, si c'est l'ordre dans le tableau qui détermine le numéro, tu
peux utiliser la fonction LIGNE

IdentifiantAuto2.ods
<http://nabble.documentfoundation.org/file/n4073121/IdentifiantAuto2.ods>

Pierre-Yves