1 votes

Trouver une valeur nulle dans une colonne et la valeur correspondante dans la 5e colonne de la ligne précédente.

J'ai un tableau qui comporte 5 colonnes. Après un certain temps, les lignes ont une valeur de zéro. J'ai besoin d'obtenir la valeur de la ligne précédente de la colonne 5.
Par exemple, ici, après la quatrième ligne, toutes les valeurs deviennent nulles. J'ai alors besoin que la valeur 89 apparaisse dans une cellule désignée en dehors de ce tableau.

Year    Amt1    Amt 2   Amt 3    Amt 5
2012         5       6      17      48
2013        15       0      72      83
2014        25      63       0      12
2015         0      56      75      89
   0         0       0       0       0
   0         0       0       0       0
   0         0       0       0       0

3voto

Jerry Points 4906

Une formule qui conviendrait à ce que vous recherchez serait la suivante :

=OFFSET(E2,MATCH(0,E:E,0)-3,0)

E2 est la première valeur de la colonne 5 (48)

OFFSET avec la cellule située au début de la colonne et descend par MATCH(0,E:E,0)-3 .

MATCH(0,E:E,0) retournera la ligne dans laquelle il peut trouver la première occurrence de 0 (Les paramètres sont les suivants : rechercher 0 dans la colonne E:E et utiliser 0 pour signifier correspondance exacte).

El -3 est de tenir compte de l'en-tête, de la première cellule et de remonter d'une cellule car MATCH retournera la position de 0 et non celle de la cellule juste au-dessus.

Le dernier paramètre dans OFFSET est de combien de colonnes la plage doit se déplacer, et puisque nous sommes déjà dans la colonne E, il n'y a pas de mouvement à cet égard.


EDIT : Depuis la colonne Year sont des zéros parfaits (la colonne 5 contient de très petits nombres arrondis à 1), vous pouvez utiliser ceci à la place :

=OFFSET(E2,MATCH(0,A:A,0)-3,0)

Comprendre l'OFFSET

Disons que vous utilisez la formule :

=OFFSET(A1, 1, 1)

OFFSET retournera la cellule qui se trouve 1 ligne en dessous et 1 colonne après la cellule A1 , qui signifie cellule B2 .

De même, =OFFSET(A1, 3, 1) donnera à la cellule B4 .

Il y a en fait plus d'options que vous pouvez avoir dans OFFSET à savoir la hauteur et la largeur de la plage résultante.

=OFFSET(A1, 1, 1, 2, 3)

OFFSET retournera la cellule qui se trouve 1 rangée en dessous et 1 colonne après la cellule A1 , qui signifie cellule B2 . Dans ce cas, la hauteur du résultat sera de 2 et la largeur de 3, ce qui signifie qu'il renverra l'intervalle suivant B2:D3 (si vous sélectionnez cette plage avec votre souris, vous verrez qu'elle aura 2 cellules de haut et 3 cellules de large). Cependant, étant donné qu'il s'agit d'un tableau, vous obtiendrez un #N/A avec cette formule. Vous pouvez toujours effectuer des opérations avec ce tableau, telles que VLOOKUP o INDEX , SUM etc.

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