Comment puis-je remplacer des cellules vides par des zéros dans la feuille de calcul Google?


13

J'ai une feuille de calcul où quelqu'un d'autre a entré les données. Ils ont laissé des cellules vides au lieu d'enregistrer 0 valeurs. Comment puis-je remplacer les cellules vides par des 0?

J'ai essayé de trouver et de remplacer par des expressions régulières en utilisant ^ $, mais cela n'a pas fonctionné.



Avez-vous trouvé le temps d'examiner l'une des réponses données?
Jacob Jan Tuinstra

Réponses:


12

Je suppose que vous ne souhaitez le faire que dans une certaine partie de la feuille de calcul et que c'est un problème ponctuel que vous devez résoudre, pas quelque chose que vous devez répéter.

Pour cela, l'approche la plus simple consiste à trouver une autre zone de même forme et taille (peut-être dans une autre feuille de calcul), et non utilisée actuellement .

Dans chaque cellule de cette zone, définissez le forumula sur quelque chose comme ceci (selon les cellules que vous utilisez):

= si (est vide (A3), "0", A3)

Sélectionnez les données dans la 2e zone, copiez-les et collez-les dans l'original en utilisant Edition> Collage spécial> Coller uniquement les valeurs

Vous devrez peut-être réappliquer une partie du formatage (par exemple, les formats de date), mais les valeurs seront là.

fyi, j'ai mis un exemple concret de cette approche ici: https://docs.google.com/spreadsheets/d/1T6owfGtpKt3NLl5hq1AZpeWA1ILWUwBQ44bdlAmekF0/edit?usp=sharing


2
Cela fonctionne à merveille. J'ai eu un petit problème avec l'utilisation de la petite commande sur le résultat. J'ai pu le réparer en utilisant = if (isblank (A3), 0, A3) à la place.
Joe Manlove

9

Utilisez une expression régulière dans Rechercher et remplacer :

^\s*$

Feuille de calcul Google remplacer le blanc par 0


Pour ma situation, c'était la meilleure réponse. J'avais deux plages de cellules qui devaient avoir des valeurs, mais qui étaient vides. J'ai rempli certaines cellules avec des valeurs, si les données étaient disponibles pour elles. Ensuite, je voulais que toutes les autres cellules vides soient remplies de zéro pour indiquer que j'avais déjà considéré ces cellules.
LS

C'était utile merci.
lathomas64

8

Le script suivant ajoutera un 0à chaque cellule vide de la plage.

Code

function onOpen() {
  SpreadsheetApp.getUi().createMenu("Zeros")
    .addItem("Sheet", "zeroSheet")
    .addItem("Data range", "zeroDatarange")
    .addItem("Selection", "zeroSelection")
    .addItem("Manual Override", "zeroManual")
  .addToUi();      
}   

function zeroSheet() {
  var sheet = SpreadsheetApp.getActiveSheet();
  zero(sheet, 'sheet');
}

function zeroDatarange() {
  var range = SpreadsheetApp.getActiveSheet().getDataRange();
  zero(range, 'datarange');
}

function zeroSelection() {
  var range = SpreadsheetApp.getActiveSheet().getActiveRange();
  zero(range, 'activerange');
}

function zeroManual() {
  var spreadsheet = SpreadsheetApp.getActive();
  zero(spreadsheet, 'manual');
}

function zero(source, type) {
  var data, range;
  switch(type) {
    case 'sheet':
      var lastRow = source.getMaxRows();
      var lastColumn = source.getMaxColumns();    
      range = source.getRange(1, 1, lastRow, lastColumn);
      break;
    case 'manual':
      range = source.getSheetByName('Sheetname').getRange(2, 4, 3, 6);    
      break;
    case 'datarange':
    case 'activerange':
      range = source;
      break;
  }
  data = range.getValues();
  range.setValues( data.map( function(row) {
    return row.map( function(cell) {
      return !cell ? 0 : cell;
    });
  }));
}

Remarque

Lorsque le fichier est ouvert, un élément de menu appelé Zéros est créé, comportant quatre sous-éléments. Si vous souhaitez également exécuter la fonction manuelle à l'ouverture, ajoutez-la simplement comme suit: entrez la description de l'image ici

Exemple

J'ai créé un exemple de fichier pour vous: remplacez la cellule vide par des zéros .
1. Créez une copie du fichier ou collez le code sous Outils> Éditeur de script . 2. Appuyez sur le bouton de bug d'horloge pour authentifier le script. entrez la description de l'image ici 3. Rouvrez votre document, vous avez maintenant le nouveau menu! entrez la description de l'image ici


A fonctionné comme un charme. Au moins dans la dernière version, vous devez l'ajouter à vos macros pour l'exécuter.
Nic Szerman

2

Pour un nombre limité de colonnes, vous pouvez filtrer pour sélectionner des blancs, puis insérer et copier 0.


2

Une façon qui a fonctionné pour moi dans des situations similaires sur les feuilles de calcul Google était de résumer la colonne vide avec 0 et de stocker le résultat dans une nouvelle colonne.

Si la colonne Acontient les cellules vides que vous souhaitez remplacer et, par exemple, si vous avez des données B, utilisez la colonne vide suivante Cpour stocker les valeurs mises à jour comme suit:

C1=SUM(A1, 0) et ainsi de suite pour toute la colonne C.

Dans mon cas, j'avais besoin de multiplier les valeurs et les cellules vides fonctionnaient comme 1s au lieu de 0s avec PRODUCT(), alors j'ai fait:

=PRODUCT(SUM(A,0), multiplier)

ce qui m'a donné les résultats attendus pour les cellules vides ou non numérotées dans A.


1

J'avais une énorme quantité de données avec des blancs placés au hasard, donc utiliser if(isblank())était une mauvaise idée pour moi car cela aurait été très laborieux.

Au lieu de cela, j'ai téléchargé ma feuille au format csv et l'ai ouverte dans TextWrangler (tout éditeur de texte avec recherche et remplacement fonctionnera). Ensuite, j'ai trouvé «,,» et remplacé par «, 0». J'ai dû le faire deux fois. Ensuite, lorsque j'ai réimporté, j'ai utilisé if(isblank())uniquement sur les première et dernière colonnes de mon ensemble de données. Tout le reste a été remis à zéro. Cela n'a pris que 5 à 10 minutes.


1

Vous pouvez utiliser "Rechercher et remplacer" ( Ctrl+ F→ Plus d'options).

  • Trouver: ^$
  • Remplacer par: 0
  • Recherche: Votre gamme
  • Sélectionnez: Rechercher à l'aide d'expressions régulières

1
-1. La question indique clairement que cela n'a pas fonctionné pour le demandeur.
msh210
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.