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?
Réponses:
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)
la source
=RIGHT(SUBSTITUTE(TEXTJOIN("",TRUE,A1:E1),"0",""),1)
=RIGHT(SUBSTITUTE(CONCAT(A1:E1),"0",""),1)
Utilisez la formule de tableau suivante:
É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.la source
MATCH
fonction n'est-il pas la valeur que vous essayez de trouver? Pourquoi serait-ce2
?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:
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:e1
retournera toujours une valeur inférieure à 2, ou uneDIV/0
erreur. La fonction retournera donc la dernière valeur non nulle ou, si elles sont toutes égales à zéro, uneNA
erreur.la source