J'ai une formule de tableau pour remplir la cellule quand elle contient du texte mais je veux qu'elle ignore la cellule si elle est vide et passe à la suivante. Le problème que je rencontre est qu'il ne le fait pas dans l'ordre que j'ai par exemple:
La plage est
-A
-(BLANK CELL)
-(BLANK CELL)
-D
-E
-F
-(BLANK CELL)
-H
-(BLANK CELL)
Résultat de la formule
-A
-E
-F
-H
Il saute les cellules qui contiennent des lettres. Est-ce que quelqu'un peut aider?
FORMULE:
{=IF(ISERROR(SMALL(IF(B4:$B$12<>"",ROW(B4:$B$12)),ROW(B4:$B$12)-3)),"",INDEX(B4:$B$12,MATCH(SMALL(IF(B4:$B$12<>"",ROW(B4:$B$12)),ROW(B4:$B$12)-3),IF(B4:$B$12<>"",ROW(B4:$B$12)),0)))}
Je pense que le problème est que vous avez la plage B4:$B$12
, donc comme il n'y a pas de signe $ autour de B4
la référence change en faisant glisser la formule dans la colonne ....... mais la formule semble un peu plus complexe que vous. besoin donc je suggère plutôt une meilleure alternative:
Quelle version d'Excel utilisez-vous?
Dans Excel 2007 ou version ultérieure, essayez cette version.
=IFERROR(INDEX(B$4:B$12,SMALL(IF(B$4:B$12<>"",ROW(B$4:B$12)-ROW(B$4)+1),ROWS(D$4:D4))),"")
Suppose que votre première cellule est D4
(modifiez la partie ROWS(D$4:D4)
pour qu'elle corresponde à votre cellule de départ réelle) et que vous faites glisser la formule dans la colonne.
confirmé avec CTRL+SHIFT+ENTER
Dans les versions antérieures où la fonction IFERROR
n'était pas disponible, vous pouvez utiliser cette version.
=IF(ROWS(D$4:D4)>COUNTA(B$4:B$12),"",INDEX(B$4:B$12,SMALL(IF(B$4:B$12<>"",ROW(B$4:B$12)-ROW(B$4)+1),ROWS(D$4:D4))))