0

Je veux faire ce qui suit: enter image description hereRECHERCHEV conditionnelle avec correspondance par colonne

achat et de vente zone est faite et ordonnée par date décroissante, mais je besoin d'aide pour calculer le bénéfice de chaque article.

Ce dont j'ai besoin, c'est de remplir la zone PROFIT comme dans l'exemple.

Mon idée est de le faire avec un VLOOKUP, mais j'en ai besoin pour n'utiliser qu'un ID de Transaction à chaque fois (un pour ACHETER, un autre pour VENDRE).

EDIT: Je veux tout l'ID de transaction ACHETER sur "Colonne I" et l'ID de transaction VENDER le plus proche sur son côté sur "Colonne J". S'il n'y a pas de transaction VENDRE, mettez seulement l'ID de transaction d'ACHAT et laissez l'ID de transaction VENDRE en BLANC.

J'espère que je me suis fait clair.

Merci d'avance!

+0

'= VLOOKUP (J3, $ E $ 3: $ G $ 8,3,0) -V RECHERCHE (I3, $ A $ 3: $ C $ 9,3,0)' devrait faire l'affaire pour vous si je comprends votre question correctement. – ian0411

+0

Salut @ ian0411, non ... Je n'explique pas bien je pense. Ce que je veux, c'est obtenir tout l'ID de transaction ACHETER sur la «colonne I» et le premier ID de transaction VENDRE sur la «colonne J» sans répéter l'ID de transaction VENDRE OU ACHETER. – ScaZ

Répondre

1

Profit est calculé uniquement lorsque vous vendez lissée, donc je suggère de poursuivre la deuxième table SELL:

enter image description here

Si nous utilisons FIFO: premier en → premier sorti, nous voulons obtenir la première pomme de la table d'achat. Pour obtenir cette utilisation index:

=INDEX(FILTER({$A$3:$A,$C$3:$C},$B$3:$B=F3),COUNTIF(F$2:F3,F3))

Faites glisser cette formule vers le bas. Ensuite, utilisez =G3-I3 pour le profit.


Pour vos paramètres régionaux s'il vous plaît essayer:

=INDEX(FILTER({$A$3:$A\$C$3:$C};$B$3:$B=F3);COUNTIF(F$2:F3;F‌​3))

Modifier

Comme @anonymous mentionné, si vous avez besoin première valeur dernière (au plus tôt), la formule doit être trié par numéro de ligne puisque vous n'avez pas de date:

=INDEX(QUERY(FILTER({row($A$3:$A)\$A$3:$A\$C$3:$C};$B$3:$B=F3);"select Col2, Col3 order by Col1 desc");COUNTIF(F$2:F3,F3))

+0

Merci pour la réponse rapide, je pense que votre solution est bonne, mais je ne peux pas le faire fonctionner. Il dit: ** Erreur FILTER a des tailles d'espace qui ne correspondent pas. Nombre attendu de lignes: 1998. Nombre de colonnes: 1. Nombre réel de lignes: 999. Nombre de colonnes: 1. **. Et aussi, je ne sais pas pourquoi, mais je dois changer vos virgules en point-virgule, comme ceci: ** = INDEX (FILTER ({$ A $ 3: $ A; $ C $ 3: $ C}; $ B $ 3: $ B = F3); COUNTIF (F $ 2: F3; F3)) ** – ScaZ

+1

J'ai ajouté un exemple de formule pour vous. Essayez également d'accéder à Fichier → Paramètres de la feuille de calcul → Paramètres régionaux. Changer pour US. –

+0

Les données OP sont triées par ordre décroissant (ce qui signifie La dernière ligne sera la première par FIFO) –