web-dev-qa-db-fra.com

Renvoie un blanc lorsque la référence de cellule est vide

J'utilise la formule suivante dans Google Sheets pour calculer le nombre de jours entre deux dates (les dates figurent dans les colonnes G et AL):

=ARRAYFORMULA(if(row(A:A)=1, "Readmission Days", (G:G)-(AL:AL)))

Il doit s'agir d'un tableau car je travaille avec un formulaire Google et les entrées sont automatiquement renseignées dans de nouvelles lignes.

Le problème est que certaines des cellules de la colonne AL sont vides. La formule lit donc ces dates comme quelque chose d’autre et renvoie un très grand nombre. De plus, lorsque les deux cellules sont vides, la formule renvoie un 0, perturbant mes données.

Comment puis-je inclure quelque chose pour ignorer les cellules vides ou simplement renvoyer un blanc quand une ou les deux références de cellules sont vides?

4
stephanie

Google Sheets ainsi que d'autres applications de tableur traitent les dates en tant que numéro sérialisé. Le grand nombre que vous faites référence et qui est affiché lorsqu'une cellule de la colonne AL est vide est très probablement le fait que c'est le nombre qui représente la date sur la cellule correspondante de la colonne G.

En ce qui concerne le renvoi d'un blanc, essayez quelque chose comme ceci:

=ArrayFormula(IF(ISBLANK(A:A),,"Non blank"))

Veuillez noter que le deuxième argument de la fonction IF () est laissé vide (,,): IFS (), IF () et d'autres fonctions similaires retournent en blanc lorsque l'argument correspondant est vide.

4
Rubén

Cette formule empêchera les cellules vides de renvoyer "0" à une autre cellule.

=IF( AND( ISBLANK(A1)=true , isblank(B1)=true ) , "dontsayzero") 

Ensuite, vous pouvez simplement supprimer le dontsayzero après l'avoir testé, mais LAISSEZ LES CITATIONS! En outre, vous pouvez rendre les choses plus sophistiquées en ajoutant plus d'instructions "IF" et "OR". Cochez cette option (supprimez les retours à la ligne mais pas les virgules)

=
IF( AND(ISBLANK(A1)=true,ISBLANK(B1)=true) , "bothblank",
IF( OR(ISBLANK(A1)=true,ISBLANK(B1)=true) , "atleastoneblank" , 
IF( AND(ISBLANK(A1)=false,ISBLANK(B1)=false) , "neitherblank")))

Cette formule examine les deux cellules et vous indique leur statut. Devrait être assez simple. Cela pourrait être utilisé si vous aviez des données, mais pas assez pour faire le calcul final et ne voulez pas que les zéros ou les erreurs gâchent votre analyse. Enlevez simplement les éléments à l'intérieur, laissez les guillemets et vous avez une cellule vierge pour l'une des trois situations. Pour aller plus loin, si vous souhaitez effectuer une opération différente dans ces trois situations, supprimez les guillemets et insérez votre opération après la virgule. Il y a probablement aussi quelque chose de plus sophistiqué. Bonne chance!

3
mike

J'ai essayé de trouver toutes sortes de solutions avec des formules, mais sans succès. C'est pourquoi j'ai écrit ce très petit script pour faire le travail pour vous:

function myCalc(range1,range2) {
  if(range1.length != range2.length) {
    throw "Both ranges need to be the same !!";
    return;
  }

  var l = range1.length;
  var output = [];

  for(i=0; i<l; i++) {
    if(range1[i] == 0 || range1[0] == "" ||
      range2[i] == 0 || range2[0] == "") {
      output.Push("");
    } else {
      output.Push([Number(range1[i]) - Number(range2[i])]);
    }
  }  
  return output;
}

Sous Outils> Editeur de script, vous pouvez coller le code. Appuyez sur le bouton de bogue (le coffre-fort et le dé-bogue) et vous êtes prêt

1