web-dev-qa-db-fra.com

Remplir les cellules vides non contiguës avec la valeur de la cellule située au-dessus du premier élément vide

Je veux savoir s'il existe un moyen de le faire conditionnellement dans Excel ou Open Office: 

if the cell is empty then
    the cell will have the same value as the cell above it
else
    do nothing.

Devrais-je utiliser une macro pour cela? S'il vous plaît aidez-moi; J'ai très peu d'expérience avec Excel.

c 1 | 21/10/2011
c 2 |
c 3 |
c 4 | 24/10/2011
c 5 |
c 6 |
c 7 | 25/10/2011
c 8 |
c 9 |
c10 | 10/26/2011 

7
jonestars
  1. Sélectionnez la plage contenant les cellules vides que vous devez remplir.

  2. Cliquez sur Accueil> Rechercher et sélectionner> Aller à spécial…. Une boîte de dialogue Aller à spécial apparaîtra, puis cochez l'option Vides. 

  3. Cliquez sur OK et toutes les cellules vides ont été sélectionnées. Saisissez ensuite la formule «= B2» dans la cellule active B3 sans modifier la sélection. Cette référence de cellule peut être modifiée selon vos besoins. 

  4. Appuyez sur Ctrl + Entrée. Excel copie la formule correspondante dans toutes les cellules vides. 

  5. À ce stade, le contenu rempli est une formule et nous devons convertir les formels en valeurs. Sélectionnez ensuite toute la plage, cliquez avec le bouton droit de la souris sur Copier, puis appuyez sur Ctrl + Alt + V pour activer la boîte de dialogue Collage spécial…. Et sélectionnez l'option Valeurs dans Coller, puis sélectionnez Aucune dans Opération. 

  6. Puis cliquez sur OK. Et toutes les formules ont été converties en valeurs.

22
Nikhil

Dans Excel:

Si vous avez une table sur laquelle une personne a fusionné des cellules ou si vous copiez une table depuis un site HTML où il peut y avoir de nombreuses incohérences dans les données copiées, telles que des lignes vides qui devraient avoir la même valeur que le ligne précédente un moyen facile de résoudre ce problème est de passer à une colonne vide et de créer la formule suivante.

Cela suppose que vous avez un en-tête dans A1 et que A2 contient les premières données et une valeur de ligne valide.
Si seulement toutes les autres cellules sont vides, vous pouvez procéder comme suit:

= if(A2="",A1,A2)

La fonction ci-dessus vérifie si A2 est vide. Dans l'affirmative, elle attribue la valeur de A1. Si ce n'est pas le cas, elle attribue la valeur de A2.


Cependant, s'il y a plusieurs lignes vides à remplir, il est préférable de procéder comme suit:
(supposons que la cellule dont vous voulez dupliquer la valeur dans toutes les cellules vides suivantes commence à A2, vous souhaitez définir manuellement les deux premières cellules de la colonne suivante, la colonne I: I est la première colonne vide de votre tableau)

Première étape: dans les cellules I2 et I3, assurez-vous que les bonnes valeurs sont présentes pour les lignes associées.
Deuxième étape: Dans la cellule I4, entrez la formule suivante:

= if(A4="",if(A3<>"",A3,I3),A4)

La fonction ci-dessus vérifie si A4 est vierge, si elle est IS, elle vérifie si A3 n'est PAS vierge, si elle est effectivement NON, elle attribue la valeur de A3, si elle est également vide, elle attribue la valeur dans I3, enfin, si A4 n'était PAS vide, il attribue la valeur de A4.

Vous devrez faire glisser la formule manuellement (car il y a des lignes vides).

Toute ligne vide qui suit des données que vous ne souhaitez pas doit être facilement identifiable en triant la colonne par un champ clé.

Comme indiqué par Robert ci-dessus, vous avez affaire à des valeurs de formule. Vous ne pouvez donc pas simplement les déplacer, en écrasant leurs cellules source. Toutefois, si vous effectuez un collage "spécial", vous pouvez coller les valeurs directement sur vos cellules source.

3
xsquires

C'est ce que j'ai écrit une fois:

Sub FillInBlankCellsInColumns()
 'Go down and when you find an empty cell, put the value from the previous cell in there.
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Dim MyCounter As Long
MyCounter = 0
    For Each r In Selection
        On Error Resume Next
        If r.Value = "" Then
            r.Value = r.Offset(-1, 0).Value
        End If
    Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
2
Robert Ilbrink

Debra Dalgleish fournit à la fois le

  • méthode SpecialCells manuelle (à laquelle Excellll fait référence)
  • la méthode VBA SpecialCells qui semble être plus votre domaine de focs

sur son site sous Saisie de données Excel - Remplir les cellules vides dans la colonne Excel

1
brettdj

utiliser Vlookup

=+VLOOKUP("Output",D1:G7,1)
  • Remplacez D1 par l'adresse de la cellule de départ à rechercher
  • Remplacez G7 par l'adresse de la cellule de fin à rechercher
  • Remplacez 1 par la colonne dont vous souhaitez que la valeur soit renvoyée
 Apple 1 Apple 
 2 Apple 
 7 Apple 
 Mango 3 Mango 
 =============== ====== 
 col1 Col2 Formule 
0
user2733648

Vous pouvez également utiliser la formule suivante dans une nouvelle colonne:

D2: =IF(ISBLANK(C2),D1,C2)

  • Créez une nouvelle colonne à côté de C.
  • La colonne D précédente s'appellera désormais Colonne E. Vos données sont dans la colonne C, les nouvelles données sont temporairement Créées dans la colonne D. 
  • La première valeur de C1 doit être copiée manuellement Vers D1 
  • Ensuite, dans D2, vous mettez cette formule. Copiez la formule complètement Vers le bas. 
  • Copiez ensuite la colonne D et utilisez Coller-Spécial Valeurs uniquement dans , Collez les résultats de la colonne D sur les données existantes dans la colonne C. 
  • Maintenant, vous pouvez supprimer la colonne D

C'est un peu plus "travail" mais puisque vous déclarez que vous n'êtes pas expérimenté dans Excel, l'écriture d'une macro peut être difficile.

Cordialement,

Robert Ilbrink

0
Robert Ilbrink