0
votes

Existe-t-il une formule de tableau pour remplir toutes les cellules vides d'une colonne avec le contenu de la cellule ci-dessus?

Dans la feuille Google suivante:

  A          B
 ------------------------
1| Tom     | something  |
2| Tom     | something  |
3| John    | something  |
4| Lana    | something  |
5| Lana    | something  |
6| Lana    | something  |
7| Jason   | something  |
 ------------------------

Je veux une formule matricielle appliquée à la colonne A qui remplira automatiquement tous les espaces vides avec les dernières données de la cellule au-dessus (ou au-dessus, s'il y a sont plusieurs blancs).

Le résultat devrait ressembler à ceci:

  A          B
 ------------------------
1| Tom     | something  |
2|         | something  |
3| John    | something  |
4| Lana    | something  |
5|         | something  |
6|         | something  |
7| Jason   | something  |
 ------------------------

Comme la feuille peut être massive, appliquer la formule à chaque cellule n'est pas pratique .

Si je colle la formule = if (ISBLANK (A2), A1) dans les blancs manuellement, cela les remplira, mais faire glisser ladite formule sur une colonne entière ne fonctionnera pas .


0 commentaires

3 Réponses :


0
votes

Le moyen le plus simple d'atteindre cet objectif serait de créer une nouvelle colonne et d'utiliser la formule = IF (ISBLANK ($ A2), $ B1, $ A2) à partir de B2 vers le bas. Je pense que vous vouliez dire que vous ne pouvez pas simplement remplacer la colonne en place, n'est-ce pas? Cela le résoudrait dans ce cas, mais ce n'est pas une formule de tableau unique. Si vous ne souhaitez pas insérer la formule dans toutes les lignes, essayez de sélectionner la première cellule, CTRL + MAJ + flèche vers le bas pour sélectionner la plage complète et CTRL + ENTRÉE pour coller la formule.

Si vous avez vraiment besoin d'une formule de tableau, on peut espérer que = ArrayFormula (IF (ISBLANK (A2: A), B1: B, A2: A)) ou similaire fonctionnerait, mais malheureusement Sheets n'itère pas les résultats de cette formule pour qu'il le fasse. D'autres fonctions (telles que vlookup) fonctionnent correctement, mais je ne sais pas comment composer une formule pour réaliser ce que vous cherchez à faire ici en utilisant celles-ci.


0 commentaires

2
votes

Oui, vous pouvez le faire avec vlookup, en créant un tableau qui comprend un numéro de ligne et en utilisant le formulaire de recherche inexacte de vlookup afin qu'il trouve la ligne précédente qui contient du texte:

=ArrayFormula(query({vlookup(row(A:A),{if(A:A<>"",row(A:A)),A:A},2),B:B},"select Col1,Col2 where Col2 is not null"))

entrez la description de l'image ici


0 commentaires

0
votes

Pour répondre à votre Q en un mot "NON" (bien que légèrement simpliste).

Une approche qui pourrait convenir est de filtrer la colonneA pour sélectionner (Blanks) uniquement et dans la première cellule vide (dans votre cas A2) entrez:

=A1

1 est le numéro de la ligne immédiatement au-dessus de la cellule de formule.

Copiez selon vos préférences et Édition> Copier> Édition> Collage spécial> Coller uniquement les valeurs, puis retirez le filtre.


0 commentaires