Namokonov

count formulas / @google_sheets

Jul 3rd, 2020
604
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. 🚀 Заказы (Таблицы, боты и скрипты): @namokonov, @renat_shagabutdinov
  3. ✅ Канал о Таблицах: https://t.me/google_sheets
  4. ✅ Чат: https://t.me/google_spreadsheets_chat
  5. ✅ Оглавление канала: https://goo.gl/HdS2qn
  6. ✅ Наша книга: https://clck.ru/LAPso
  7.  
  8. Друзья, хотите узнать, почему тормозит ваша Таблица?
  9. Хотите понять, какие в ней используются формулы и на каких они листах?
  10.  
  11. Простой скрипт для вас. Введите в ячейку B2 ссылку на Таблицу, нажмите на выходца из убежища и скрипт сформирует для вас список всех формул Таблицы, добавив листы, на которых они находятся.
  12.  
  13. Таблица со скриптом: https://docs.google.com/spreadsheets/d/1tQwHzLtQlGaOmfUIX4jt-02YHa-w5KTx1XYZ7UVsy-0/edit#gid=0
  14. (делайте копию, чтобы сохранить её себе и запускать скрипты)
  15. */
  16.  
  17. function GETFORMULAS(){
  18.   const sheet = SpreadsheetApp.getActiveSheet();
  19.   const url = sheet.getRange("b1").getValue();
  20.  
  21.   const ss = SpreadsheetApp.openByUrl(url);
  22.   const sheets = ss.getSheets();
  23.   var arr = [];
  24.  
  25.   //цикл по листам
  26.   for(var sh in sheets){
  27.     var shName = sheets[sh].getName();
  28.    
  29.     //берем только формулы
  30.     var data = sheets[sh].getDataRange().getFormulas();    
  31.     //цикл по столбцам
  32.     for(var i = 0; i<data[0].length; i++){    
  33.       //цикл по строкам
  34.       for(var j = 0; j<data.length; j++){
  35.         var cell = data[j][i];
  36.         var eq = cell.search(/\)/);
  37.         eq !== -1 ? arr.push([shName, '\\'+cell.toUpperCase()]) : ''
  38.       }
  39.     }
  40.   }
  41.  
  42.   sheet.getRange("a3:b").clearContent();
  43.   sheet.getRange(3, 1, arr.length, arr[0].length).setValues(arr);
  44. }
Add Comment
Please, Sign In to add comment