4 votes

J'essaie d'utiliser efficacement la fonction "Index if", c'est-à-dire de copier une liste en fonction de certains critères.

J'ai une colonne de données et un marqueur à côté. Pensez-y :

ID#1 -- A
ID#2 -- B
ID#3 -- A

J'essaie de ne déplacer que les numéros d'identification avec le marqueur A - mon résultat final est donc le suivant

ID#1
ID#3

C'est très facile à faire avec VBA - Filtrer la plage, copier, coller. J'essaie de trouver une solution non VBA à ce problème. J'ai essayé diverses formules de tableau - Index(range,sumproduct(row*criteria)), mais je n'y arrive pas. Comment faire pour que cela fonctionne ?

L'élégance informatique est un facteur important - la feuille dont je m'occupe devrait être une base de données en raison de sa taille, mais les pouvoirs en place ont écarté cette idée.

3voto

yass Points 2494

Utiliser :

=IFERROR(INDEX($A$1:$A$8,SMALL(IF($B$1:$B$8="A",ROW($B$1:$B$8),999999),ROW(A1))),"")

Small renvoie les ID avec "A" pour chaque ligne (de la plus petite à la plus grande).
A1:A8 modifier pour correspondre à votre colonne ID
B1:B8 à modifier pour correspondre à votre colonne A
Conserver $ pour les références fixes
presse Ctrl + Shift + Enter au lieu de Enter il s'agit d'une formule de tableau

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X