Хабрахабр

[Из песочницы] Визуализации в Google Spreadsheets

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

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

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

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

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

/** * Подставляет вместо закодированных значений соответствующие значения из справочника * @param 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. Потому что пока в BIM не работают все от производителей стройматериалов и проектировщиков до строителей и эксплуатации, от него больше трудозатрат, чем пользы. Но мы быстрей прикрутим таблицы к модели в SketchUp (тоже гугл, чтоб его), чем внедрим BIM. А в нашей стране это произойдет не скоро.

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть