2017-09-28 6 views
0

J'ai besoin d'une formule en Excel qui vide les cellules de la colonne D si la cellule correspondante dans la colonne C (c'est-à-dire sur la même ligne) est déjà vide.Formule Excel qui transforme des cellules en cellules vides si la cellule à côté est déjà vide

Pour élaborer, cela est un échantillon de ma feuille Excel:

C  D 
1 0,5 500 
2 0.3 400 
3  600 
4  700 
5 3.1 400 
6  350 
7 1.1 400 

Je veux qu'il se transformer en ceci:

C  D 
1 0,5 500 
2 0.3 400 
3   
4   
5 3.1 400 
6   
7 1.1 400 

Toutes les valeurs sont codées en dur. Est ce que je veux possible?

+0

Vous pouvez les mettre dans une nouvelle feuille (ou différentes colonnes) avec les cellules vides, puis les recopier sur les données d'origine si nécessaire. Sinon, pour le faire directement, vous auriez besoin de VBA. –

+0

@TomSharpe Comment est-ce que je ferais vide les cellules en les plaçant dans une nouvelle feuille/colonne différente? –

+0

Vous pouvez utiliser la formule '= IF (C1 =" "," ", D1)' dans une autre colonne qui n'est pas utilisée, puis copier les valeurs de collage dans la colonne D, sinon vous devrez utiliser VBA. – Mrig

Répondre

2

Je ne sais pas ce que vous avez en D1 à déjà créer de la valeur, etc.

Mais essayez:

=IF(C1="","", Your original value/formula here) 
+0

Toutes les valeurs des deux colonnes sont codées en dur. Je veux transformer les cellules codées en dur dans la colonne D en espaces vides/vide si la cellule à côté de lui (dans la colonne C) est déjà vide –

+0

@VegardDyran comment sont-ils codés en dur? – PeterH

+0

Je ne suis pas tout à fait sûr de ce que vous entendez par là, mais la feuille de travail est exportée à partir d'une trame de données dans R, donc aucune cellule ne contient de formules - juste des valeurs. –

1

sûr que vous ne pouvez pas utiliser une formule dans ce cas. Ce dont vous avez besoin est une macro

Sub EmptyCells() 
    For Counter = 1 To 20 
     Set cell = Worksheets("Sheet1").Cells(Counter, 2) 
     If IsEmpty(cell.Value) = True Then 
      Worksheets("Sheet1").Cells(Counter, 3).Value = "" 
     End If 
    Next 
End Sub 

Vous pouvez appeler l'éditeur vba avec alt + F11. Cliquez avec le bouton droit sur votre feuille et sélectionnez Insérer-> Module. Collez le code là-bas et enregistrez l'Excel en tant que fichier .xlsm. Ouvrez l'affichage de la macro avec alt + F8 et exécutez votre macro. Après l'exécution de la macro, toutes les valeurs de la colonne D ayant une valeur vide dans la colonne C seront également vides.