• Как отсортировать столбец, но не всего значения ячейки, а его части?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Скорее всего вы ищите такую формулу

    =TOCOL(SORT(A3:A;MOD(A3:A;1000);1);1)

    6637421b2017b063381569.png

    Дополнительно

    Положим, что нужно сортировать и по лидирующим числам

    Есть порядок

    29350, 28350, 28350, 27350

    Требуется

    27350, 28350, 28350, 29350

    Тогда формула будет, где вторая пара аргументов SORT A3:A;1

    =TOCOL(SORT(A3:A;MOD(A3:A;1000);1;A3:A;1);1)

    66374936451f0997947249.png

    Примеры в Таблице тут https://docs.google.com/spreadsheets/d/193Dbro4_sH... и тут https://docs.google.com/spreadsheets/d/193Dbro4_sH...
    Ответ написан
    6 комментариев
  • Three.js объект сзади не виден при повороте к нему лицом?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Без полноценого примера в песочнице это будет гадание на кофейной гуще, но что видно сейчас - для такой простой сцены у вас используется очень много вещей, которые потенциально могут что-то сделать c видимостью объектов. Обычно мы их используем для очень опасных оптимизаций, когда нужно все сделать нестандартным образом, где-то что-то сломать, но за счет этого что-то другое выиграть. Тут такие оптимизации явно преждевременны. Стоит пройтись по ним и убрать все. Если сцена будет работать, то потом можно будет вернуть назад по очереди, наблюдая за происходящим.

    Параметры depthWrite у материала и sortObjects у рендерера - первые кандидаты на то, чтобы их убрать. И определенно стоит вместо BoxGeometry нулевой толщины взять PlaneGeometry. Нулевая толщина тоже может давать разные сложности, с определением видимости в том числе.
    Ответ написан
    3 комментария
  • Как передавать данные при добавлении новой записи?

    aekozhevnikov
    @aekozhevnikov
    hungryking
    Для автоматической отправки данных в Telegram при добавлении новых записей в Google Таблицу можно использовать триггер onFormSubmit, если данные добавляются через Google Формы, или триггер onChange для отслеживания любых изменений в таблице, включая добавление строк.
    Ответ написан
    Комментировать
  • Как добавить класс js?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Используйте всплытие событий. Вешайте обработчик на постоянно присутствующий родительский элемент.
    Ответ написан
    2 комментария
  • Как синхронизировать данные построчно?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Положим, что в Таблице 1 у вас есть колонка с уникальными значениями. Если нет, то придется сделать.
    Тогда в Таблице 2 вам нужно сделать колоку, куда вы будете вносить тоже самое значение из Таблицы 1. Это можно сделать как раз через IMPORTRANGE и выпадающие списки.
    Теперь в Таблице 2 напротив ключа вы можете вводить свои данные, а данные из Таблицы 1 подтягивать через VLOOKUP.
    Ответ написан
    Комментировать
  • В чем преимущество полевого транзистора перед биполярным, простыми словами?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Ну, это совсем просто. Чтобы держать биполярный ключ открытым, надо ему в базу загонять ток, всё время. Т.е. непрерывно тратить энергию, поскольку там есть замкнутая цепь для электрического тока (открытый эмиттерно-базовый PN-переход).
    С полевым ключом принципиально не так. Управляющая цепь затвора - не замкнутая, поскольку между затвором и каналом есть изолирующая прослойка. Поэтому там ток не течёт, для открытия ключа достаточно подать напряжение, для закрытия - снять его. Электроэнергия на это практически не тратится (если не считать первый момент, когда заряжается затворная ёмкость). Вот и первое преимущество - экономичность в управлении.
    Второе преимущество полевика - малое проходное сопротивление (единицы миллиом, много меньше, чем у биполярного, и в некоторых случаях даже меньше, чем у замкнутых контактов). Причём чем больше управляющее напряжение на затворе, тем проходное сопротивление меньше, соответственно и меньше нагрев полевика проходящим током. Однако не надо впадать в фанатизм на этом пути - если Uупр превысит значение 15 вольт, то изоляция затвора может быть пробита, и полевой ключ (такой удобный и простой в применении) превратится в тыкву.
    Есть и другие отличия, которые проявляются только на высоких частотах.
    Ответ написан
    5 комментариев
  • Как на ESP32 сделать выходное напряжение с диапазоном 0-15V с как можно более минимальным шагом при управлении?

    @pfg21
    ex-турист
    если тебе не нужна большая мощность на выходе, то лучше используй обычный выход ЦАП и аналоговый усилитель на 15 вольт.
    какаянить стандартная микросхемка усилителя мощности звука вполне пару ампер на выходе даст.
    плюс элементарная и понятная схема, отлично работает, настройки практически не требует. минус КПД и грется будет конечно. но зависит от потребления.

    dc-dc это если тебе нужная большая мощность на выходе.
    если схема стандартна, то в ООС просто добавить компаратор.
    на плюсовой вход резистивный делитель от выхода чтобы преобразовывать 0-15 в рабочий диапазон ЦАП.
    на минус выход ЦАП.
    а выход компаратора подать вход ООС при превышении напряжения на выходе компаратор включится и остановит работу ШИМ.
    изменения в блоке питания будут минимальны.
    Ответ написан
    Комментировать
  • Можно ли ускорить копирование данных из одних столбцов в другие в Google таблицах?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Не задавайте вопросы без примера!


    Зачем вы делаете все те манипуляции - не понятно. Это последствия Excel?

    Занимает доли секунды

    /* exported userActionCopyValues */
    function userActionCopyValues() {
      copyValues_('rg');
    }
    
    function copyValues_(e) {
      const sheet = SpreadsheetApp.getActive().getSheetByName('Ускорить работу скрипта');
      const dataRange = sheet.getDataRange();
      const values = dataRange.getValues();
    
      const lastValKMNOV = values.findLast((row) => row[11] === e);
    
      if (!lastValKMNOV) {
        console.warn(`lastValKMNOV ${lastValKMNOV}`);
        return;
      }
    
      const lastIndexBF = values.findLastIndex((row) => row.slice(1, 1 + 5).join(''));
    
      if (lastIndexBF === -1) {
        console.warn(`lastIndexBF ${lastIndexBF}`);
        return;
      }
    
      sheet
        .getRange(lastIndexBF + 2, 2, 1, 5)
        .setValues([[lastValKMNOV[10], lastValKMNOV[11], lastValKMNOV[12], lastValKMNOV[13], lastValKMNOV[21]]]);
    }


    65fbc8ba1bbea534262777.png

    Пример в Таблице https://docs.google.com/spreadsheets/d/1KN2SuXbHN5...
    Ответ написан
    Комментировать
  • Есть ли задача на распределенные вычисления, которую легко проверить?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Берете любую NP-complete задачу: https://en.m.wikipedia.org/wiki/List_of_NP-complet...

    Все их сложно решить и легко проверить ответ.
    Ответ написан
    Комментировать
  • Как создать гиперссылку с изменяемыми данными в Google Sheets?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Используйте Name box [CTRL]+[J]

    65f14a0f6a13e500880455.gif

    С помощью скрипта

    Вот пример того, как это может быть

    65f14565d17e2157459805.gif

    На картинке
    1. Пользователь вводт в A1 имя любого листа
    2. Если такое имя есть в книге, то активируется этот лист


    Можно автоматизировать до посинения, например, дбавить список всех листов или только нужных, и пр.

    Пример в Таблице https://docs.google.com/spreadsheets/d/1Kh0_NeLS1v...
    Ответ написан
    4 комментария
  • Как заштриховать область под графиком в excel?

    @Griglapidus
    C++/Qt
    Такая настройка требуется?
    65eed14c7bd18330879362.png
    Ответ написан
    3 комментария
  • Какой шаблон проекта выбрать при написании телеграмм бота Visual Studio 2022?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    А что такое API? Это просто сервер, куда вы будете делать HTTP запросы и получать информацию. Как разница, откуда вы будете делать HTTP запрос используя HttpClient. Ваш шаблон просто будет показывать, как вы это собираетесь выводить пользователю.

    Хотите простенькую программу? Делайте Console Application
    Хотите минимальный, но рабочий GUI? Делайте на Windows Forms/WPF
    Хотите, что бы вашей программой пользовались на телефоне? Можете делать на Xamarin.NET или MUI
    Хотите, что бы ваша программа была доступна без скачивания? Делайте на asp.net mvc
    Хотите, что бы ваша программа была в интернете и имела красивый и быстрый UI? Можете сделать на asp.net web api и прикрепить туда в качестве клиента React, Angular или Vue.js
    Не хотите делать переадресация трафика через API? Можете сделать только на React, Angular или Vue.js
    Хотите быстрый GUI в браузере, но не хотите отходить от технологий Microsoft? используйте asp.net Blazor
    Ответ написан
    Комментировать
  • Почему MATCH может выдавать неверный результат?

    Geleoss
    @Geleoss
    Любитель таблиц
    ПОИСКПОЗ(запрос; диапазон; метод_поиска)
    1 (значение по умолчанию) указывает функции ПОИСКПОЗ, что диапазон отсортирован в порядке возрастания. Функция возвращает наибольшее значение среди всех значений, которые меньше или равны запросу.
    0 указывает функции, что требуется вернуть точное совпадение. Применяется в случаях, когда диапазон не отсортирован.


    Вам же нужно в своей функции указать 0, =MATCH(B2;B:B;0).
    Ещё лучше, не "растягивать" формулу по ячейкам, а воспользоваться формулой массива:
    =ArrayFormula(IFNA(MATCH(B2:B;B:B;0)))
    Ответ написан
    2 комментария
  • Можете объяснить код на STM32?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    uint8_t led_state = 0x03; Данной командой мы завели переменную, которая равна 3

    В коде написано 2.

    что под этим подразумевается?

    2 -- это вот такое 8-битное двоичное число: 00000010. А если 2 заменить на 3, то число станет таким: 00000011. Улавливаешь связь с количеством и номерами включенных светодиодов?

    HAL_GPIO_WritePin(GPIOE, led_state << 8, GPIO_PIN_SET); Это я так понимаю мы сначала устанавливаем самый первый светодиод, т.е. 8, но на практике ни так.

    Нет, светодиоды на схеме подключены к битам 8..15, а led_state ты выше видел какое. Этой командой мы сдвигаем биты 0..7 led_state в биты 8..15.

    led_state = led_state >> 1 | led_state << 7;Эту строку совсем не понимаю.

    Это циклический сдвиг вправо на 1. Т.е. биты "выдвигаемые" вправо за пределы led_state появляются слева.
    т.е. двоичное число abcdefgh превращается в 0abcdefg | h0000000 = habcdefg.
    Ответ написан
    6 комментариев
  • Реально ли написать скрипт для конвертации?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Да, это реально. Не видно никаких препятствий. Плюс, Apps Script умеют парсить xml в JS, так что это возможно.

    Как примерно реализовать:

    1. Получить данные из файла EPG через UrlFetch
      const xml = UrlFetchApp.fetch(url).getContentText()

    2. Распарсить данные через XMLService const document = XmlService.parse(xml)
    3. Получить текущие данные из Таблицы SpreadsheetApp, getDataRange().getValues()
    4. Сравнить с полученными данными из xml
    5. Если есть разница, то обновить Таблицу SpreadsheetApp, getDataRange().setValues()
    Ответ написан
    2 комментария
  • Почему происходит ошибка импорта?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    К сожалению, это может быть особенность хранения данных на стороне Гугл.

    Варианты, что можно попробовать:
    • Сделать копию проблемной Таблицы и подключить копию
    • Разгрузить проблемную Таблицу, возможно в ней много расчетов
    • Попробовать уменьшить количество потребителей конечной Таблицы (пользователей)
    • Попробовать уменьшить количество потребителей проблемной Таблицы (IMPORTRANGEей)
    Ответ написан
    Комментировать
  • Форма перестала записывать данные в таблицу ответов. Как исправить?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Вы не должны никаким образом редактировать Таблицу. Редактируйте Форму, т.к. она источник данных.

    Выгрузите Форму в новую Таблицу и увидите все прежние данные. Новые ответы также будут приходить.

    Еще раз: не меняйте данные в Таблице на листе, куда привязана Форма - это неверное понимание механизма работы с данными. Соблюдайте ПРФ https://gist.github.com/oshliaer/45242e42d50a39b0a...
    Ответ написан
    2 комментария
  • Почему греется сборка стробоскопа?

    @pfg21
    ex-турист
    полностью согласен в предыдущим отвечающим, использовать гасящий резистор для питания силового светодиода от напряжения в 24 вольт это гигансткий расход энергии в тепло.
    посоветую поставить импульсный преобразователь с регулировкой выходного тока.
    обычно это платка с двумя подстроечными резисторами (один на выохдное напряжение, другой на выходной ток) к примеру (картинка кликабельна)
    6321100132.jpg
    он будет преобразовывать с КПД 96%, т.е. от ватта потребления твоего диода рассевиваться в тепло будет 40милливатт.
    есть чуть более дешевый вариант с LM2596 но там КПД будет чутка поменьше (смотри инфу по 2596)

    настраиваешь резистором "напряжение" выходное в районе 5 вольт чтоб не мешалось.
    потом замыкаешь выход на резистор в пару ом и настраиваешь резистором "ток" напряжение на резисторе не станет I*R - выходной ток настроен.
    Ответ написан
    Комментировать
  • Как отследить блокировку бота пользователями в телеграмме?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Приходит update со следующими ключевыми полями:
    {
         "my_chat_member": {
             "chat": {
                 "id": 5181600575,
             },
             "old_chat_member": {
                 "status": "member"
             },
             "new_chat_member": {
                 "status": "kicked",
             }
         }
     }
    Ответ написан
    2 комментария