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


Répondre à