Recherche de la dernière valeur non nulle dans une ligne donnée dans Excel

0

J'ai 10 lignes de données de la forme suivante:

00004
04000
03000
06000
00500
00001

Ce que j'aimerais pouvoir faire, c'est obtenir la dernière valeur non nulle dans chacune de ces lignes et les renvoyer à côté de leurs lignes respectives, comme suit:

000044
040004
030303
066006
055005
002011

Notez que chaque valeur ci-dessus est dans une cellule séparée. Quelle est la meilleure façon de faire cela?

114
la source
Quand vous dites des lignes. Est-ce que chaque numéro de chaque ligne de la même cellule de cette ligne ou sont-ils dans des cellules différentes?
Scott Craner
@ScottCraner Désolé, chacun se trouve dans une cellule différente, mise à jour pour clarifier.
114

Réponses:

1

Vous pouvez utiliser des formules chaînées pour remplacer d’abord tout le «0» par rien, puis prendre le caractère le plus à droite, comme
=RIGHT(SUBSTITUTE(cell1&cell2&cell3...,"0",""),1)

Aganju
la source
Désolé, mise à jour la question pour préciser que chaque valeur est dans une cellule différente.
114
FWIW: si OP a Office 365 Excel, alors=RIGHT(SUBSTITUTE(TEXTJOIN("",TRUE,A1:E1),"0",""),1)
Scott Craner
Ou mieux encore=RIGHT(SUBSTITUTE(CONCAT(A1:E1),"0",""),1)
Scott Craner
1

Utilisez la formule de tableau suivante:

=INDEX(A1:E1,MATCH(2,IF(A1:E1<>0,1)))

Étant une formule matricielle, il doit être confirmé avec Ctrl-Maj-Entrée lorsque vous quittez le mode édition au lieu de Entrée. Si cela est fait correctement, Excel contiendra {}la formule.

entrez la description de l'image ici

Scott Craner
la source
Je suis un peu mystifié. Le premier argument de la MATCHfonction n'est-il pas la valeur que vous essayez de trouver? Pourquoi serait-ce 2?
Ben Wheeler le
0

Avec vos données dans A1: E1 (et en supposant que toutes les valeurs sont des entiers), vous pouvez utiliser cette formule normalement entrée:

F1: =LOOKUP(2,1/A1:E1,A1:E1)

et remplissez.

Si la fonction LOOKUP ne trouve pas la valeur lookup_value, elle correspond à la plus grande valeur de lookup_vector qui est inférieure ou égale à lookup_value. 1/a1:e1retournera toujours une valeur inférieure à 2, ou une DIV/0erreur. La fonction retournera donc la dernière valeur non nulle ou, si elles sont toutes égales à zéro, une NAerreur.

entrez la description de l'image ici

Ron Rosenfeld
la source