Виконувати основну математику за вмістом Google Document (не електронною таблицею)


12

У Microsoft Word можна використовувати дуже просту формулу, наприклад, =SUM(ABOVE)щоб відобразити загальну кількість стовпця =SUM(LEFT)тощо. Чи можливо зробити щось подібне в Google Документах? Очевидно, що це можливо в електронних таблицях Google, але мені це потрібно зробити в таблиці в документі.

Відповіді:


6

Наразі в Документах Google (документах) немає функції робити обчислення.

Альтернативою є використання додатка або сценарію Google Apps для розширення вбудованих функцій Документів Google.

Посилання
Розширити Документи, таблиці та форми Google за допомогою сценарію програм - Довідка редакторів Документів


3

Щоб проілюструвати використання програми Script для цієї мети, я написав функцію, яка підсумовує вибрані значення в документі: або в таблиці, або в абзаці, або в декількох абзацах і т.д.

Він викликається командою меню "Сума вибрана", що знаходиться в розділі "Спеціальні"; цей пункт меню створюється при відкритті документа. Текст виборів розділяється пробілом, а потім кожен твір інтерпретується як число (якщо можливо). Такі цифри додаються і результат відображається користувачеві в alertдіалоговому вікні. (Я розглядав можливість вставити його в документ, але для нього немає природного місця: коли користувач вибирає текст, його позиція курсора втрачається.)

Це разовий розрахунок; якщо значення будуть змінені, потрібно було б виконати це ще раз.

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);
  }
}

0

Використовуючи додаткові оборотні формули - Sketch-n-Script, ви можете додавати формули для відображення таблиці, а також виконувати довільні обчислення JavaScript на ній.

Напишіть у своєму документі:

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

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

Totals

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

Клацніть на "Відображення значень". Ви повинні отримати наступне - я додав жирний шрифт до "Усього":

Візуалізація

URL додатку: https://chrome.google.com/webstore/detail/formulas-for-google-docs/kgjbgmonlnhglokmfnpnklegakfknbeh

Відмова: Я є автором цього додатка. Відмова від відповідальності: На сьогоднішній день поки що неможливо візуально змінити надані таблиці. Я працюю над цим.


0

Я взяв код користувача79865 і вніс деякі зміни.

Цей код може оцінити будь-яке просте рівняння з вибраного тексту:

function onOpen() {  
  DocumentApp.getUi().createMenu('Custom')  
  .addItem('Evaluate', 'evaluate').addToUi()  
  .addToUi();
}

function evaluate() {      
  var selection = DocumentApp.getActiveDocument().getSelection();  
  if (selection) {  
    var element = selection.getRangeElements()[0];  
    var text = element.getElement().editAsText();  
    if (text) {  
      var str = text.getText();  
      if (element.isPartial()) {  
        str = str.slice(element.getStartOffset(), element.getEndOffsetInclusive() + 1);  
      }  
      var val = eval(str);  
      val = +val.toFixed(2)  
      DocumentApp.getUi().alert("Equation: " + str + "\nResult: " + val);                             
      //text.appendText('\nAppended text.');  
    }  
  }  
}

Можна також відмітити останній рядок, і код запише відповідь у документі.

Оператори, якими я користувався і працював добре:

  • + Доповнення
  • Віднімання
  • * Множення
  • / Відділ
  • ** Експоненція
  • ( ) Номери груп у порядку операцій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.