• Как вывести Сумму из наибольшего параметра веса или объема?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Включаю режим Ванги.
    Отсортируйте массы {0; 50; 100; 200} и объёмы {0; 0,2; 0,6; 1} по возрастанию, берите ВПР с последним параметром 1, он автоматически возьмёт ближайшее большее или равное.
    Ответ написан
    Комментировать
  • Гугл таблицы. Как зафиксировать гиперлинк на конкетруную строку?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Добавьте параметр range к ссылке. Там есть номер строки:
    ...edit?gid=0#gid=0&range=A7
    Ответ написан
  • Как выразить переменные из формулы?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    wolframalpha
    A = P * (1 + r/n)^(n*t) solve t
    Ответ написан
    Комментировать
  • Почему перестали работать usb порты?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Проверить:
    1) Драйверы
    2) Отключать устройства и подключать по одному
    3) USB-порт снаружи
    далее - в сервисе, после разборки
    4) Плaта USB (если есть) - пайка и целостность USB-порт
    5) Микросхемы свитчей, и их обвязка
    6) Хаб, внешний или в процессоре

    Пунктов может быть больше, зависит от схемотехники ноута. Но это забота ремонтников скорее всего,. если первые пункты не помогли
    Ответ написан
    Комментировать
  • Как сделать секундомер с пуском и паузой?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Для каждого ввести статусы - выключено, запущено; т.е. нужна простая машина состояний.
    Кнопки меняют статусы и пишут данные. Вместо кнопок можно onEdit+галка.
    Триггер по времени (раз в минуту) обновляет данные.

    Если нужно готовое решение - можно посмотреть в сторону фриланса
    Ответ написан
    Комментировать
  • Почему перестают работать usb-serial устройства на Raspberry Pi 4?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Фильтруйте питание. Там защит много не бывает, особенно в автоприменениях. По питанию катушка выдаст хорошие такие иголки, которые надо бы фильтровать. А по воздуху - кучу помех в широком спектре.
    Поставьте электролит + керамика на питание.
    Поставьте ферритовые колечки на провода питания.
    Укорачивайте сигнальные провода по возможности.
    Экранируйте платы, все экраны - на землю в одной точке.
    В конце концов, сделайте аккумуляторное питание не от машины, а от отдельного акб.
    Ответ написан
    Комментировать
  • Как автоматизировать регулярный клик на кнопку?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Самое простое - выполнить что-то подобное в консоли, или если это надо часто - сделать букмарклет с таким кодом.
    const setIntervalHandler = setInterval(
      ()=>{
        const elem = document.getElementById("myButton");
        elem.?click ? elem.click(): console.error("button not found");
      },
      2*60*1000
    );
    Ответ написан
    Комментировать
  • Как с помощью макроса найти слова и выделить их разными цветама в зависиомости от слова в гугл таблицах?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Храните слова и цвета вместе, и используйте вместе.
    let dictionary = {
      stop_words: [
       { word: "Not_Malicious", color_code: "#ea4300" },
       { word: "NOT_Virus", color_code: "#ea0035" },
       { word: "NOT_Fake_Message", color_code: "#004335" },
       { word: "NOT_Misleading", color_code: "#ea4005" },
       { word: "NOT_Sound", color_code: "#e00335" },
       { word: "NOT_JSalert", color_code: "#0a0305" },
      ],
    };
    
    // Тут, для производительности, можно предварительно сделать все TextStyle вместо color_code
    
    function _1() {
      let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      // range диапазон поиска
      let range = sheet.getRange("E:E").getValues();
    
      range.forEach((item, row) => {
        for (let column = 0; column < item.length; column++) {
          if (typeof item[column] === "string" && item[column] != "") {
            let richText = SpreadsheetApp.newRichTextValue().setText(item[column]);
            // item[column] текст ячейки
            dictionary.stop_words.forEach(({word, color_code}) => {
              let arr = searchIndex(
                word.toLocaleLowerCase(),
                item[column].toLocaleLowerCase()
              );
              let color = SpreadsheetApp.newTextStyle()
              .setForegroundColor(color_code)
              .build();
              arr.forEach((ind) => {
                richText.setTextStyle(ind.startIndex, ind.endIndex, color);
              });
              sheet
                .getRange(row + 1, column + 1)
                .setRichTextValue(richText.build());
            });
          }
        }
      });
    }
    // ... остальной код
    Ответ написан
    Комментировать
  • Построение диаграммы Ганта через массив с числами?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Преобразовать числа в даты и использовать уже готовое
    2) Сделать самому, с преферансом и поэтессами
    Ответ написан
    Комментировать
  • Возможно ли сделать в exel такой функционал?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Всё возможно, только сейчас это не вопрос, а задание.

    Для закраски подойдёт условное форматирование: номер недели + продолжительность <= номер столбца
    Для переноса номеров ИНДЕКС / ВПР / ГРП / ПОИСКОЗ
    Ответ написан
    1 комментарий
  • Почему дисплей ST7789 не корректно работает?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Проверьте все соединения. Провода по возможности короче
    2) Проверьте код. Для начала просто повторите то что есть
    3) Если есть официальные примеры, проверьте на них
    4) Проверьте версию библиотеки.
    5) Попробуйте другую версию библиотеки.
    6) Попробуйте другую библиотеку.
    7) Есть конвертер 5>>3.3?
    Wide Supply Voltage Range
      I/O Voltage (VDDI to DGND): 1.65V ~ 3.3V (VDDI≦VDD)
      Analog Voltage (VDD to AGND): 2.4V ~ 3.3V

    8) Возможно есть несколько ревизий экрана, смотрите даташиты
    Ответ написан
  • Почему не работает тригер гугл таблиц?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Тут в самом вопросе ответ:
    через бота >> не работает
    через apps scripts >> не работает
    вручную >> работает

    Если надо запустить функцию извне, используйте doGet/doPost
    Ответ написан
    Комментировать
  • Почему не работает Esp32 из-за драйвера мотора?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Поставьте диод в разрыв +5 которые идут к ESP. И за ним - конденсатор электролитический побольше.
    Вообще лучше разделять питания силовые, аналоговые и цифровые. В данном случае - питать драйвер/двигатели от отдельного источника.
    Ответ написан
    Комментировать
  • Вывод в ячейки даты понедельников и четвергов с последующей их заменой?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    1) Ставите в A1 дату понедельника
    2) в B1 =A1+3 или дату четверга
    3) в C1 =A1+7
    4) Распространить или скопировать C1 вправо
    Ответ написан
    Комментировать
  • Как победить XPath?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    =индекс(ваша_формула;1;1)
    или
    =chooserows(ваша_формула;1)
    или сделать так:
    ( ваш_xpath )[1]
    Ответ написан
    1 комментарий
  • Как разбить одномерный массив на двумерный из строки?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    const inString = "[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]";
    let data = JSON.parse(inString);
    let outData = [];
    let outDataElem = [];
    for (let i in data){
      let el = data[i];
      if(!el){ // Если 0
        if(outDataElem.length){ // Если outDataElem уже что-то содержит
          outData.push([...outDataElem]);
        };
        outDataElem = [];
        continue;
      };
      outDataElem.push(el);
    };
    if(outDataElem.length){
      outData.push([...outDataElem]);
    };
    console.log(outData);
    Ответ написан
    Комментировать
  • Какой Скрип для записи последних действий в документе можно использовать?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    /**
     * Возникает при изменении ячейки
    * @param {e} event event-объект https://developers.google.com/apps-script/guides/triggers/events?hl=ru
     * [ ProgrammerForever (c) 2020 ]
     * @return Не возвращает значений
     */
    function onEdit(event) {
      var as = 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();//Пользователь(работает только при вручную назначенном триггере)
      
      let archiveSheetName = "sheet";
      let ss = SpreadsheetApp.getActiveSpreadsheet();
      let archiveSheet = ss.getSheetByName(archiveSheetName) || ss.insertSheet(archiveSheetName);
      archiveSheet.appendRow([new Date(), userEmail, as.getName(), address, oldValue, newValue]);
    };
    Ответ написан
  • Как понять, отправился ли ответ?

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

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    1) Найти значение
    2) Выбрать столбец

    Например так:
    =choosecols(e2:h4; поискпоз(a1; трансп(e1:h1); 0) )
    Ответ написан
  • Как реализовать произношение английских слов в таблице?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    1) Найти сервис который умеет выдавать нужные данные по API
    2) Написать код для работы с этим сервисом
    3) Сделать интерфейс. Конкретно транскрипция это текс, можно писать прямо в ячейки или даже использовать как юзерфункцию. А проигрывание - тут я бы использовал модальное окно, там наверняка можно воспроизвести файл.
    Ответ написан