XL 2013 Copier cellules avec plusieurs conditions

WIsh_

XLDnaute Occasionnel
Bonjour à tous,

J'ai un soucis pour copier des cellules. Vous trouverez ci-joint mon fichier test4 comme exemple illustrant les explications ci-dessous.

La colonne "n°" indique les lignes du tableau liées. Il s'agit d'opérations sur le même dossier.
Ces opérations sont de 3 "type" (colonne type) :
1 = entrée
2 = facture
3 = correction facture
Lorsque les types sont "2" ou "3", la colonne REF B reprend la REF A du dossier de type "1" (hormis dans le cas d'exception précisé ci-dessous => voir *)

Concrètement, je souhaiterais à partir du tableau "source" où les informations d'un même dossier se lisent verticalement, aller vers un tableau comme dans l'onglet "destination", où les données se lisent horizontalement.
En bref, le but est de voir sur la même ligne : l'entrée (type 1), la/les sorties (tybe 2), la/les corrections (type 3), et de pouvoir ajouter un solde.

*Un cas particulier, certains dossiers ne contiennent uniquement que des lignes type 2 ou 3 (voir lignes 17 et 18). Ces dossiers n'ont aucune valeur dans la colonne 21 "REF B" et en plus, la valeur "0" dans la colonne 22 "nbr". Dans ces cas là, les données doivent être là aussi décalées en fin de ligne comme pour les autres type "2" (ici on restera sur la même ligne comme il n'y a pas de ligne "type 1" correspondante) ; et les données des colonnes 5 "REF A" à 27 "CAT" doivent être supprimées.

In fine, les lignes 3, 5, 7, 9, 11, 13, 15, 16, 20, 21 et 22 dont les données ont été "déplacées" dans les colonnes 28 (REF F1) à 45 ("CP REF F3") doivent être supprimées.

Ce sont donc les formules à mettre dans les colonnes 28 à 46 que je cherche.
J'ai essayé avec des somme.si.ens ou des index et equiv imbriquée mais je n'y arrive pas...

L'idéal je crois serait des formules pour déplacer les données à déplacer en fin de tableau, puis une macro pour suprimer les lignes dont aucunes valeurs n'est complétées après la colonne 27. Ah oui, mon tableau source original comporte 6516 lignes. Le nombre de colonne est par contre identique à celui repris dans le fichier test.

Merci d'avance pour votre aide.
 

Pièces jointes

  • test4.xlsx
    20.4 KB · Affichages: 1
Dernière édition:

WIsh_

XLDnaute Occasionnel
Bonjour, ci-joint le fichier excel avec un exemple de formule (2ème onglet, cellule AB2)

J'ai utilisé la formule "=INDEX(source!$A$2:$AA$22;EQUIV($A:$A;source!$A:$A;0);21)"

Néanmoins, le résultat renvoyé n'est pas correct... EQUIV renvoie la ligne 2 alors que le résultat se trouve ici sur la ligne 3 de la source. J'ai essayé 1+EQUIV mais ça ne fonctionne pas car parfois c'est 2+EQUIV ou 3+EQUIV qu'il faudrait mettre.

La valeur a afficher dans la cellule AB2 est source!U3, or ici, la formule que j'ai trouvée affiche U2.
Les conditions à respecter sont les suivantes :
Destintation!A2 = source!$A:$A
type = 2
Poste doc. Article = 1 (on est dans REF1 ; la position sera 2 pour mettre dans la colonne REF2, etc.)
valeur F <> 0

Idem pour AC, AD, AE AF et AG… on est sur la mauvaise ligne source.

Peut-être faut-il adjoindre la fonction indirect ?
 

Pièces jointes

  • test6.xlsx
    18 KB · Affichages: 2

Discussions similaires

Haut Bas