Effectuer des calculs de base sur le contenu de Google Document (pas une feuille de calcul)

11

Dans Microsoft Word, il est possible d'utiliser une formule très simple, par exemple =SUM(ABOVE)pour afficher le total d'une colonne ou =SUM(LEFT)etc. Est-il possible de faire quelque chose de similaire dans Google Docs? Évidemment, cela est possible dans Google Spreadsheets, mais je dois le faire dans un tableau dans un document.

Jonathan Day
la source

Réponses:

3

Pour illustrer l'utilisation d'Apps Script à cette fin, j'ai écrit une fonction qui additionne les valeurs sélectionnées dans un document: soit dans un tableau, soit dans un paragraphe, soit dans plusieurs paragraphes, etc.

Elle est invoquée par la commande de menu "Sum selected", trouvée sous "Custom"; cet élément de menu est créé à l'ouverture du document. Le texte de l'élection est divisé par des espaces, puis chaque morceau est interprété comme un nombre (si possible). Ces numéros sont ajoutés et le résultat est affiché à l'utilisateur par une alertboîte de dialogue. (J'ai envisagé de l'insérer dans le document, mais il n'y a pas de place naturelle pour lui: lorsqu'un utilisateur sélectionne du texte, sa position de curseur est perdue.)

Il s'agit d'un calcul unique; si les valeurs sont modifiées, il faudrait recommencer.

function onOpen() {
  DocumentApp.getUi().createMenu('Custom').addItem('Sum selected', 'sum').addToUi();  
}

function sum() {  
  var selection = DocumentApp.getActiveDocument().getSelection();
  if (selection) {
    var elements = selection.getRangeElements();
    var s = 0;
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      var text = element.getElement().editAsText();
      if (text) {
        var str = text.getText();
        if (element.isPartial()) {
          str = str.slice(element.getStartOffset(), element.getEndOffsetInclusive() + 1);
        }
        var pieces = str.split(/\s+/);
        for (var j = 0; j < pieces.length; j++) {
          s += (parseFloat(pieces[j], 10) ? parseFloat(pieces[j], 10) : 0);
        }
      }
    }
    DocumentApp.getUi().alert(s);
  }
}

la source
0

En utilisant les formules réversibles complémentaires - Sketch-n-Script, vous pouvez ajouter des formules pour afficher un tableau et également pour effectuer des calculs JavaScript arbitraires dessus.

Écrivez dans votre document:

expenses = ([10, 20, 30])
incomes = ([30, 20, “”])

=table([["Expenses", "Income"]].concat(rotate([expenses, incomes])))

Totals

=table([["Expenses", "Income"]].concat([[sum(expenses),sum(incomes)]]))

Cliquez sur "Afficher les valeurs". Vous devriez obtenir ce qui suit - j'ai ajouté du gras à «Totaux»:

Le rendu

URL du module complémentaire: https://chrome.google.com/webstore/detail/formulas-for-google-docs/kgjbgmonlnhglokmfnpnklegakfknbeh

Avertissement: je suis l'auteur de ce module complémentaire. Avertissement: Pour l'instant, il n'est pas encore possible de modifier visuellement les tables rendues. J'y travaille.

Mikaël Mayer
la source