Merci Samuel,
*Formulation du projet*
- Je dispose d'un tableau Source ayant pour colonnes:
Un nom, un prix et un nombre (égal à 8000/prix)
- Seules les lignes comportant un prix m'intéressent. Je veux donc les
extraire et les ajouter à un tableau Cible.
- Je considère les numéros des lignes LS et LC.
J'envisage de balayer le tableau Source de Haut en Bas, en m'assurant
qu'il y a une ligne suivante,
a ) - Quand le champ Nom contient une donnée et quand la ligne du
tableau source contient un prix:
je copie ses champs et les colle dans la table cible. Et, j'ajoute 1 à
LS et à LC du tableau Source;
b ) -Quand le champ Nom contient une donnée et quand la ligne du tableau
source
ne contient pas de prix: j'ajoute 1 à LS et je passe à la ligne suivante
du tableau Source
Je vérifie que le champ nom contient une donnée; quand il ne contient
pas de donnée le balayage est terminé.
*Problèmes pratiques*
La fonction pourra être placée, entre les deux tables, dans la colonne D
par exemple, sur la première ligne du tableau Source. On aura LS=LC.
A la réflexion, chaque fois que l'on passera à la ligne suivante LS sera
incrémenté automatiquement
et deviendra inutile. Si bien que dans notre formule LC figurera seul.
Pour coller les champs dans la table Cible, il faudra écrire Champ_C=
Champ_S. Il suffira de copier
le champ de la table source trouvé dans la ligne qui contient la
formule. La difficulté que je n'arrive pas à traiter est de représenter
les champs de la table Cible car, leur numéro de ligne est différent de
celui de la formule;
Nom_C(LC)=Nom_S(LS)
Prix_C(LC)=Prix_S(LS)
Nombre_C(LC)= Nombre_S(LS)
Une fois les 3 champs collés on incrémentera la ligne de la table Cible
Ma formule me semblait répondre à la question adaptée
Si le prix de la ligne LS est supérieur à zéro, c'est à dire s'il existe
alors copier les champs d un tableau source et les coller dans le
tableau cible
Si Prix_S(LS)>0
*alors* Nom_C(LC)=Nom_S(LS) et Prix_C(LC)=Prix_S(LS) et LC= LC+1
On incrémente LC après avoir collé les champs car au départ, la première
ligne du tableau
cible est vierge.
J'espère avoir traité avec pertinence à la question.
Cordialement
Papy
Samuel Mounier (Liste CGO) a écrit :
Jean Sympa a écrit :
Bonjour à toutes et à tous,
Calc Créer une sous table
Je souhaite extraire automatiquement de la table Source les lignes
contenant
un prix supérieur à zéro. Je dois donc utiliser deux indices LS etLC.
La formule pourrait, pour commencer, traduire l'expression suivante :
Si Prix_S(LS)>0 *alors* Nom_C(LC)=Nom_S(LS) et Prix_C(LC)=Prix_S(LS)
et Nombre_C(LC)= Nombre_S(LS) et LC=LC+1*sinon* LS=LS+1
LS et LC sont des variables entière positives.
Initialement LS=LC
Je n'arrive pas à traduire cette expression en une formule
opérationnelle.
Remarque
Les Noms sont du texte non indicé. On pourrait écrire Nom_S & LS et
Nom_C&LC
A Titre d'essai, pour pouvoir utiliser Nom1, l'écriture =nom_s=A5&C3
ne donne pas le nom présent dans la cellule A5
Avec mes remerciements
Cordialement
Papy
Bonjour Papy,
Je ne pense que partir d'une ébauche de formule soit une bonne chose.
A chaque formation tableur j'indique comment constituer sa pensée son
raisonnement par étape.
1 exprimer en Français ce que l'on souhaite (tous ses aspects faire
plusieurs phrases si besoin)
2 Tenter de simplifier le raisonnement qui a été mis en français
(explorer plusieurs voie ne jamais se cantonner à l'éternel SI ALORS
SINON)
3 Passer au langage "pseudo-mathématique" (on introduit là seulement
des noms de variable des opérateurs mathématique, des traitements
(quelques fonctions)
4 On écrit la fonction en elle même
Peux tu indiquer exactement ce que tu souhaite faire en Français
(étape 1)
Merci