Визуализации в Google Spreadsheets

в 11:47, , рубрики: google spreadsheets, Google Web Toolkit, gsuite, визуализации, планирование, строительство

С момента появления Excel стал самым популярным и универсальным инструментом автоматизации расчетов для непрограммистов и полупрограммистов (таких, как я). В свое время я много всякого писал на VBA, делал в студенчестве скрипты для оформления курсовых, даже запилил для диссертации мощный итерационный расчет распространения тепла в твердом топливе во время горения, который минут на 20 парализовывал комп. Сегодня в эпоху облаков и веб-решений эту нишу захватывают Google Sheets.

Недавно провел небольшое исследование гугл таблиц для работы с визуализациями. В процессе изучения родились несколько интересных идей и один скрипт. Под катом результаты моих изысканий.

Визуализации в Google Spreadsheets - 1
Работаю я в сфере управления и планирования строительством, а на стройке что-то сложнее икселя приживается очень плохо. Поэтому у гугл таблиц есть все шансы завоевать сердца (а может даже умы) строителей. Некоторые приемы, уже ставшие стандартом работы в электронных таблицах, гугл перенимает у предшественников, поэтому на первый взгляд разница с искселем незначительна. При этом некоторые возможности реализуются в новом виде и одной из таких удачных на мой взгляд реализаций стали формулы массива. Они были и в икселе, но посмотрев на них, хотелось сказать “слава богу, что я не знаю где они мне могут понадобиться”. В гугле же с ними прямо приятно работать и, думаю, они еще проявят свою полезность во многих задачах. Я же покажу, как их можно применять для работы со строительными визуализациями.

Демонстрировать все это в видеоформате проще, поэтому сделал небольшой эксплейнер:

А вот код скрипта, который позволяет увязать визуализацию с разными обозначениями со справочником параметров:

/**
 * Подставляет вместо закодированных значений соответствующие значения из справочника
 * @param {"A5:D20"} arr массив исходных закодированных значений
 * @param {"A21:D25"} sprav справочник (массив)
 * @param {"цена"} param искомый в справочнике параметр
 * @customfunction
 */
function ВИСП(arr, sprav, param) {
  if(typeof sprav=="object"&&sprav.length!=undefined) {
    if(typeof arr=="object"&&arr.length!=undefined) {
      for (var i = 0; i<arr.length; i++){
        for (var j= 0; j<arr[i].length; j++){
          if (arr[i][j] != ""){
            var r = sprav.map(function(value){return value[0]}).indexOf(arr[i][j]);
            var c = sprav[0].indexOf(param);
            if (r!=-1 && c!=-1) {arr[i][j] = sprav[r][c]}
          }
        }
      }
    }  
  }
  return  arr;
}

Возможно оптимизация кода не на высоте, я все таки не PROграммист, но он работает.

Конечно, те кто в теме, скажут что это все фигня, давно уже есть BIM. Да, есть. Но мы быстрей прикрутим таблицы к модели в SketchUp (тоже гугл, чтоб его), чем внедрим BIM. Потому что пока в BIM не работают все от производителей стройматериалов и проектировщиков до строителей и эксплуатации, от него больше трудозатрат, чем пользы. А в нашей стране это произойдет не скоро.

Напоследок о гугле. Кажется по качеству продукта он далеко впереди аналогов, коих поверхностное гугление выдает целую плеяду. Но нигде я не встречал такой продуманной логики работы, качественной кроссдевайсности и возможности расширять функционал скриптами. Но это только мое мнение, и если я не прав, поделитесь своим.

Автор: RePlaner

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js