Задать вопрос
  • Как вставить массив в таблицу?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    У вас массив вида
    [el1, el2, el3...]
    А нужен такой:
    [[el1], [el2], [el3]...]
    Можно не переделывать код, а перед вставкой в таблицу просто сделать так:
    buffer = buffer.map(x=>[x]);
    Ответ написан
    2 комментария
  • Как сделать векторный рисунок по координатам?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Смотрите в сторону ActiveSheet.Shapes или в сторону UserForm с добавленным PictureBox, +можно использовать WinAPI для рисования.
    Ответ написан
    Комментировать
  • Как можно сохранять данные в Excel по новой строчке?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Вариант 1: храните переменную - номер строки, записывайте в нужную строку, каждый раз инкрементируя переменную
    Вариант 2: каждый раз при открытии файла считайте количество строк в нем, пишите в последнюю+1 строку
    Ответ написан
  • Как объединить несколько файлов EXCEL на одну таблицу?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Проще всего было бы сохранять не в .xslx, а в .csv, потом можно было бы парой строк кода обойтись и очень быстрое объединение получилось бы.
    А так:
    1) Получить список файлов, первое что приходит на ум - FileSystemObject
    2) Открыть каждый как Workbook
    3) Получить список листов Sheets
    4) Получить данные с нужных ячеек Cells
    5) Сохранить в память. Неплохой вариант для этого - Dictonary
    6) Сохранить всё в файл в удобном формате
    Ответ написан
    Комментировать
  • Как создать сайдбар? Где можно об этом почитать?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Сайдбар - это обычная HTML страничка. Мне для моих задач хватило одного примера, дальше всё стало ясно.
    (гуглится по фразе "[Примеры, Google Apps Script] Разработка дополнений/скриптов для Google Таблиц (spreadsheets)")
    Ищите статьи и вопросы на подобных сайтах по запросам
    HtmlService.createHtmlOutputFromFile
    GoogleScript Sidebar

    Ну и официальную справку и гайды никто не отменял, они довольно хороши.
    Ответ написан
    Комментировать
  • Что будет HDD если на все линии SATA попадет +12В?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Возможно что не так уж всё и мрачно. Стоит посмотреть визуально плату, на входе часто стоит защитный диод или предохранитель, возможно он сгорел. Или стабилитрон на входе, проверить что не замыкает на землю. Т.е. возможно ремонт быстрый и копеечный.

    Есть вариант купить/найти плату от точно такого же диска, перепаять FLASH память с калибровками со старого диска(если осталась жива) на новый и попробовать запустить. Есть шанс что взлетит.
    Ответ написан
    2 комментария
  • Как вычислить значение искомой ячейки с помощью ЕСЛИ() или какой-либо другой функции, которая переберет весь диапазон массива?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Тут подойдёт FILTER(диапазон;условие1;условие2...) для отсеивания нужных строк
    А дальше всё это можно суммировать, пересчитывать, вычислять среднее, записывать кучей с помощью JOIN() и т.п.
    Ответ написан
    Комментировать
  • На каких полевиках собрать замену эл. реле на 10A?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Выбирайте любой полевой транзистор с запасом по току. Для электродвигателя нужно добавить диод внешний (от истока к стоку) для защиты от пробоя транзистора от самоиндукции. Тепловыделение будет напрямую зависеть от сопротивления открытого канала.
    Ответ написан
  • Как организовать права доступа на определенные листы?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Отдельно не получится. Но если режим "только на чтение" подойдёт - то можно сделать так:
    Файл - Опубликовать в Интернете. Публикуете отдельные листы, для каждого юзера, и раздаёте индивидуальные ссылки на данные.
    Ответ написан
    Комментировать
  • Как устранить гудение эл. плиты от диммера?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    На 100% не уверен, но диммер с коммутацией в нуле должен решить проблему.
    Ответ написан
    Комментировать
  • Как узнать что за фигура через вектора?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Сделать кучку правил и проверок для каждой фигуры. Например:

    Треугольник: 3 вектора, такие что
    c=±a±b
    Тут следует понять, что это может быть и
    a=±c±b
    или
    b=±a±c

    Прямоугольный треугольник: 3 вектора, такие что
    скалярное произведение одной из пар векторов равно нулю (или же угол 90 градусов)
    +Правило для треугольника

    Равнобедренный треугольник: 3 вектора, такие что
    какая-то из пар векторов равна(или же есть два равных угла)
    +Правило для треугольника

    Равносторонний треугольник: 3 вектора, такие что их модули равны
    |a|=|b|=|c|
    +Правило для треугольника
    и т.п.
    Ответ написан
    5 комментариев
  • Универсальная колодка AC DC без полярности?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Мост Гретца, он же диодный мост.
    Есть нюанс, а именно: на выходе будет напряжение меньше, чем на входе
    Uвых = Uвх - 2*Uпр
    ,где Uпр - прямое падение напряжения на диоде (обычно 0,6В для кремниевых диодов)
    Ответ написан
    Комментировать
  • Как отправить почтовое уведомление из Google Sheets?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    1) Для отслеживания факта изменения ячейки используйте onEdit(event)
    В объекте event в том числе есть информация о новом значении ячейки (enent.value).
    2) Для отправки письма sendEmail(recipient, subject, body)
    Ответ написан
  • Как исключить столкновение двух окружностей?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Есть много вариантов как это можно сделать. Один из них:
    1) Переводите обычные декартовы координаты в полярные. Тогда центр второй относительно центра первой будет на расстоянии
    r=R1+R2
    2) Далее или выбираете фи произвольно, или же проходите с неким шагов весь круг, рассчитывая расстояние между центром второй окружности сейчас и центром второй окружности после двигания. Нужно выбрать минимум функции, тогда движение будет минимальным.
    3) Перевести полярные обратно в декартовы
    Ответ написан
    Комментировать
  • На какую сумму чайник вскипятил воду?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Я лет 18 назад, в 7 классе, так КПД чайника искал. Получилось точно 50%.

    Формулу, кстати, можно вывести прямо из размерностей
    Дж = Вт * с = В * A * с
    руб = руб/[кВт*ч] * кВт * ч

    т.е.
    Работа = Мощность * Время = Напряжение * Ток * Время
    Деньги = Работа * Тариф

    Только нужно не забывать, что для удобства обывателя тариф в кВт*ч, а не в Дж, т.е.
    1000*Вт*3600*с = 3600000Дж = 3,6*МДж
    Ответ написан
  • Как удалить дубли в столбцах exel?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Если не брезгуете Google таблицами, там это делается легко и непринужденно:
    В D1:
    =ArrayFormula(a:b;a:a<>b:b)
    Ответ написан
    Комментировать
  • В чём опасность цифровой трудовой?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Идея отличная, давно вообще все документы сделать цифровыми, чтобы любое ведомство могло запросить любую "бумажку" у любого другого ведомства, а не использовать человека как посыльного, когда они не могут договориться.
    Если перефразировать знакомую многим фразу из классного фильма:
    Бумага - это хорошо, бумага - это надёжность
    (с) Борис Бритва
    Я когда об этом узнал, у меня сразу промелькнула ситуация, как весь мой стаж и заслуги растворились в небытии, и я поехал по стране собирать лично(а как же ещё) со всех мест работы записи, чтобы всё восстановить.
    Я буду делать электронный вариант, но буду дублировать в бумаге.
    Ответ написан
    Комментировать
  • Как зажигать отдельные светодиоды на 4x4x4 кубе Arduino?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Всё на 100% зависит от того как коммутированы диоды в кубе. Смотрите схему, отследите куда нужно подать +питания(лог 1), а куда 0 для включения конкретного диода. И в соответствии с этим выставляйте ножки на контроллере.

    Для экономии выводов обычно в таких случаях применяют сдвиговые регистры, например 74HC595 как преобразователь последовательного интерфейса в параллельный. Ими чуть сложнее управлять, чем просто ногодрыг, и скорость снижается пропорционально, зато есть возможность теоретически безграничного расширения выводов по 3 проводам
    Ответ написан
    Комментировать
  • Как заставить выполняться скрипт по строкам?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Не пойму, зачем это делать скриптом, если можно одной формулой, записав в B1:
    =ARRAYFORMULA(ЕСЛИ(A1:A="";"";"Выполнено"))

    Если нужно менять B столбец при изменении A, и вставлять туда "Выполнено" при непустом значении в А, то это как-то так:
    /**
     * Возникает при изменении ячейки
    * @param {e} event event-объект https://developers.google.com/apps-script/guides/triggers/events?hl=ru
     * [ ProgrammerForever (c) 2020 ]
     * @return Не возвращает значений
     */
    function onEdit(event) {
      var ss = event.source.getActiveSheet();//Текущий лист
      var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
      var row = event.range.getRow();      //Номер строки
      var col = event.range.getColumn();  //Номер столбца
      var newValue = event.value;            //Новое значение
      var oldValue = event.oldValue;        //Старое значение
      var userEmail = event.user.getEmail();//Пользователь(работает только при вручную назначенном триггере)
      
      //Делаем что-то
      if((col===1)&&(newValue!="")){
        ss.getRange(row,2).setValue("Выполнено");
      };
    };
    Ответ написан
  • Как найти координаты вершины треугольника если известны координаты двух других и длины всех сторон?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Строим из точки A окружность с радиусом AC
    (x-xA)^2 + (y-yA)^2 = R^2 = AC^2
    2) Строим из точки B окружность с радиусом BC
    (x-xB)^2 + (y-yB)^2 = R^2 = BC^2
    3) Решаем систему уравнений, получаем 0(пересечений нет), 1(пересечение в одной точке, касание) или 2 действительных корня(пересечение в 2х точках). Это и есть возможные варианты точки C.
    Можно найти x, а потом подставить в любое из уравнений и получить y, или же наоборот.
    Ответ написан
    Комментировать