Задать вопрос
  • Где можно купить трансформатор с маркировкой хатбу7б07 9 №9?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Если не гуглится, то лучший вариант - смотать все обмотки, замеряя количество витков и последовательность. Потом замерить диаметры провода (если нет микрометра - намотать 20-30 витков на карандаш и измерить штангенциркулем).
    Ну и намотать всё обратно, сохраняя порядок (и направление!) намотки. Скорее всего сгорела одна из обмоток (с самым тонким проводом) и менять придётся только её по факту.
    Расклеить феррит можно нагревая трансформатор, до 100 градусов примерно, можно даже в воде.
    Ответ написан
    Комментировать
  • Очистка ячеек определенного диапазона в определенное время?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Лист2");
    Ответ написан
    Комментировать
  • Как выбрать субтитры в Youtube Player API?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Пробовали параметры
    ?cc_lang_pref=ru&cc_load_policy=1
    Ответ написан
  • Как сделать перенос данных из чата в ТГ в таблицу Excel с попутным форматированием?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    1) Сделать функцию, которая будет парсить раскладывать
    function saveMessage(message){
      // ваша логика парсинга сообщения. через регулярки или split()
    };

    2) Сделать вебхук входящий на получение сообщений от бота
    function doPost(e){
      try{
        let data = JSON.parse(e?.postData?.contents || "{}");
        let messageText = String(data?.message?.text || "");
        if (messageText) {
          saveMessage(messageText);
        };
     }catch({message,stack}){
       // Запись логов ошибки во внешнее хранилище
     };

    3) Сделать деплой как веб приложение с доступом всем от вашего имени
    4) Полученный uri вебхука зарегистрировать в боте методом setWebhook
    Ответ написан
    Комментировать
  • Как получить нужный формат отображения номера в Google Sheets?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    1) Заменяйте все не-цифры на "" (REGEXREPLACE)
    2*) Опционально можно взять последние 10 символов (ПРАВСИМВ или любой другой способ)
    2) Преобразуйте в число через (унарный + или 0+<выражение>)
    3) Формат ячеек 000 000 0000 или любой другой какой захочется
    Ответ написан
    Комментировать
  • Гугл формула игнорирует регистр, что делать?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Если данные не списочные, приводите их к одному виду.
    СТРОЧН() для текста, можно ещё СЖПРОБЕЛЫ() применить (получаем чистый текст)
    ОКРУГЛВНИЗ() для дат (получаем только дату, без времени)
    +() для чисел, чтобы не-числа стали числами
    и так далее
    Ответ написан
  • Как сохранять в гугл таблицу список значение ячейки, которое постоянно меняется?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Есть много способов. Например, в onEdit брать значение и сохранять в отдельном месте. Или вставлять строку.
    Ответ написан
    Комментировать
  • Как создавать только 1 документ при переносе данных из гугл таблиц?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    .makeCopy()
    В этом месте и создаётся файл.

    Чтобы он не создавался, добавьте проверку на существование. Что-то вроде:
    let fileName = 'Заявка № ' + number;
    if (!DriveApp.getFilesByName(fileName ).hasNext()){
      return;
    };
    Ответ написан
    Комментировать
  • Как добавить в Google Docs счетчик подписчиков из пабликов ВК?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Ваш адрес возвращает:
    {"error":{"error_code":5,"error_msg":"User authorization failed: no access_token passed.","request_params":[{"key":"group_id","value":"${194603548}"},{"key":"v","value":"5.131"},{"key":"method","value":"groups.getMembers"},{"key":"oauth","value":"1"}]}}

    Просит "User authorization failed: no access_token passed"

    UrlFetchApp имеет второй параметр options, там (скорее всего) и надо в headers передать Bearer или другой токен
    Ответ написан
    Комментировать
  • Как посмотреть все открытые документы в google docs (у другого пользователя)?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    • Если есть доступ к аккаунту - зайти в него и посмотреть все доступные.
    • Если доступа нет - можно посмотреть пересечение ваших и его доступов. Т.е. взять все файлы свои и посмотреть есть ли у него доступ тоже.

    Можно фильтрами в поиске, можно скриптами, используя DriveApp/DriveApi
    Ответ написан
    Комментировать
  • Как дополнить формулу =QUERY на вывод кол-во уникальных значений с их подсчетом?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    3 раза примените формулу
    =let(
      calcCount; lambda(data; QUERY({data}; "
        SELECT Col1, COUNT(Col1)
          WHERE Col1 IS NOT NULL
          GROUP BY Col1
      "));
      HSTACK(calcCount(b4:b); calcCount(c4:c); calcCount(e4:e))
    )
    Ответ написан
    Комментировать
  • Как написать формулу чтоб из диапазона достать уникальные значения в один столбец?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    TOCOL делает столбец из данных.
    =QUERY(
      TOCOL(A:B);
      "SELECT Col1, COUNT(Col1)
        WHERE Col1 IS NOT NULL
        GROUP BY Col1
        ORDER BY COUNT(Col1) DESC
        LABEL Col1 'Кто', COUNT(Col1) 'Кол-во'
      "
    )
    Ответ написан
    4 комментария
  • Чем протестировать матплату?

    ProgrammerForever
    @ProgrammerForever Автор вопроса
    Учитель, автоэлектрик, программист, музыкант
    Рассказываю результат. Оказалась мёртвой встройка. Отключил в BIOS, поставил видеокарту внешнюю, всё работает. Поставил Ubuntu, поработает еще старичок.
    Всем спасибо за участие!
    Ответ написан
    Комментировать
  • Артефакты на экране. Что делать?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Сделать скриншот - это сразу отметёт половину случаев.
    Если артефакты и на скрине - умерла видеокарта. Если скрин хороший - помер монитор/кабель.
    Попробовать ещё запустить другую ОС, liveUsb любой сделать и попробовать, или просто в BIOS настройки зайти и там посмотреть - это может быть глюк операционки или драйверов.
    Ответ написан
    Комментировать
  • Какую формулу можно использовать для переноса данных диапазона в рамках одного листа?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    =ArrayFormula(A1:C10)
    A1:C10 - что копируем
    ввести формулу в левую верхнюю ячейку куда копируем
    Ответ написан
    Комментировать
  • Может ли выключатель не полностью проводить электрический ток?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Это самый плохой вариант - нет перегрузки, нет замыкания, а есть дуга. Нагрев есть, защиты - нет. Соответственно всё подсказали уже - отключить, проверить, зачистить/заменить/протянуть.
    Ответ написан
    Комментировать
  • Как снять сигнал с выхода на тахометр от ЭБУ автомобиля, при помощи Arduino?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Лучше всего взять готовую схему для подключения, защиты, согласования. Смотрите схемы ЭБУ, их прилично. Январь, Бош, SECU и т.д.
    Ответ написан
    Комментировать
  • Как вставить дату ячейку с помощью ПСТР()?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    ТЕКСТ() для форматирования
    ARRAYFORMULA() для обработки диапазонов
    ЕСЛИ() для того чтобы считало только по данным, а не пустоту
    =ArrayFormula(ЕСЛИ(A:A="";;"№"&A:A&" от "&ТЕКСТ(B:B;"dd.MM.yyyy")))
    Ответ написан
    Комментировать
  • Как настроить "автоматически расширяемый" диапазон в условном форматировании?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    При вставке строк, удалении строк, копировании ячеек, добавлении строк через "Вставить строки ниже" в уже готовом правиле автоматически меняется диапазон - автоматом расширяется и сжимается исходя из логики изменений структуры. Причем если было A1:A10, например, то при добавлении строки в 5 позиции будет A1:A11 в итоге.
    Я бы сказал, что это не баг, а фича. Отследите после чего появляются дефрагментированные диапазоны и не делайте так.
    На крайний случай - сделайте скрипт который будет обновлять условное форматирование.
    Ответ написан
    Комментировать
  • Как собрать данные с помощью Importxml?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Посмотрите что вообще сервер отдает. Возможно сайт грузится динамически. Вот мой старый код, должен помочь
    /**
    * Открывает URL и возвращает код страницы
    * Telegram - @ProgrammerForever
    *
    * @param {string} URL URL который нужно открыть
    * @param {boolean} isCut Указывакт, нужно ли обрезать страницу до 50000 символов по длине, по умолчанию false
    * @param {boolean} noScript Указывакт, нужно ли удалять скрипты из кода
    * @return Исходный код страницы
    * @customfunction
    */
    function getHTML(URL,isCut,noScript) {
      if ((URL === undefined)||(URL == "")) { return "#ОШИБКА Пустой URL";};
      if (isCut === undefined) {var isCut=true;};
      if (noScript === undefined) {var noScript=true;};
      if (URL.map){     //Если задан диапазон
        return URL.map(getHTML);
      }else{
        try {
          var payload = {
            'rand':(new Date()).getTime()
          };
          var headers={
            'Connection': 'keep-alive',
            'Cache-Control': 'max-age=0',
            'Upgrade-Insecure-Requests': 1,
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'
          };
          var options = {
            'method' : 'get',
            'headers' : headers,
            'payload': payload
          };
          
          var response = UrlFetchApp.fetch(URL,options);
          var charset=response.getAllHeaders["charset"];
          //var responseText=response.getContentText(charset?charset:"windows-1251");
          var responseText=response.getContentText(charset?charset:"UTF-8");
          if (noScript){ 
            responseText=responseText.replace(/<script[^>]*>(?:(?!<\/script>)[^])*<\/script>/gmi,"");
            responseText=responseText.replace(/<!--.*?-->/gmi,"");
            responseText=responseText.replace(/<link.*?\/>/gmi,"");
            responseText=responseText.replace(/<meta.*?\/>/gmi,"");
            responseText=responseText.replace(/[\n\r\t]/gmi,"");
            
          };
          if (isCut&&(responseText.length>50000)){return responseText.substring(0,50000);}else{return responseText;};
        } catch (err) {
          //return JSON.stringify(err);
          return "#ОШИБКА "+err.message;
        };
      };
    };
    Ответ написан