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?


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)


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


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.