• Как в экселе диапазон ячеек который берет данные с другого листа скопировать чтобы не менялись адреса?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    =('лист1'!$B$26)*$D$6
    Можно прописать руками или понажимать F4
    Можно прописывать отдельно: доллар рядом с цифрой - не меняется строка, доллар рядом с буквой - не меняется столбец
    Гугл: относительная и смешаная адресация
    Ответ написан
  • Чтение электрических схем?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Уровень физики - Заняться физикой - основы школьной хватит для начала. Закон Ома, основные формулы параллельного/последовательного соединений, правила Кирхгофа, полупроводники, p-n переход
    2) Уровень детальки - Понять как работают отдельные компоненты, зачем нужны, типовые и нетипичные варианты использования
    3) Уровень куска схемы - Читать и попытаться вникнуть в описание схем - зачем в ней тот или иной элемент, понимать как действуют несколько элементов сообща, понимать типичные узлы.
    4) Уровень практики и синтеза - Пытаться проектировать/собирать свои схемы на основе опыта. Собирать или моделировать, проверять варианты.
    Читать статьи/Смотреть видео для начинающих, в .т.ч. из категории "для чайников" - это для быстрого старта, там часто объясняется "на пальцах"
    Ответ написан
    Комментировать
  • Как сделать взаимосвязанные выпадающие списки в Google Sheets?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Нужно обрабатывать событие onEdit(), причём надо назначить полноценный триггер на это.
    Заготовка кода для onEdit()
    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;							//Старое значение
    	
      if (["Лист1","Лист2"].indexOf(ss.getName())==-1) return;	//Указываем на каких листах должен работать скрипт
    	
    	//Что-то делаем...
      };
    Ответ написан
    5 комментариев
  • Скрипт, который ищет значение по заданным массивам?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Непонятно что именно нужно, но вам точно поможет функция FILTER(диапазон; условие1; [условие2; ...])
    Ответ написан
  • Столбик в 3 столбика или 3 строчки в одну?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Excel:
    =
    ДВССЫЛ("R"&(СТРОКА()*3-2)&"C1";0)&" "&
    ДВССЫЛ("R"&(СТРОКА()*3-1)&"C1";0)&" "&
    ДВССЫЛ("R"&(СТРОКА()*3)&"C1";0)

    где C1 - номер столбца с данными

    В Notepad++ как-то так (для не слишком длинных строк):
    1. Перейти в начало текста Ctrl + Home
    2. Запись макроса
    3. End
    4. Del
    5. End
    6. Del
    7. Вниз
    8. Home
    9. Стоп записи
    10. Включить макрос. Выбрать "Повторить до конца файла"

    Для длинных строк вместо End надо искать \n в расширенном поиске
    Ответ написан
    Комментировать
  • Как массово продублировать ячейки?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Если пусто, скопировать выше из текущего столбца, иначе скопировать из целевого с той же строки
    D2:
    =если(A2="";D1;A2)

    Если непусто в первом столбце, то: если пусто, скопировать выше из текущего столбца, иначе скопировать из целевого с той же строки
    E2:
    =если(A2="";""; ЕСЛИ(B2="";E1;B2) )

    Если пусто в первом или во втором столбцах, то пусто, иначе: если пусто, скопировать выше из текущего столбца, иначе скопировать из целевого с той же строки
    F2:
    =если(ИЛИ(A2="";B2="");""; ЕСЛИ(C2="";F1;C2) )
    Ответ написан
    Комментировать
  • Как подключить микроконтроллер к программатору USBASP?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    ATTINY13 --> USBASP
    1 - Reset --> RST - 5
    4 - GND --> GND - 8, 10
    5 - MOSI --> MOSI  - 1
    6 - MISO --> MISO - 9
    7 - CLK --> CLK  - 7
    8 - VCC --> +5  - 2
    Ответ написан
    Комментировать
  • Логика скрипта в гугл-таблице?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Делается проще. Отдельно создаётся "справочник" - туда формулой FILTER() подгружаются варианты, в зависимости от выбранного в первом столбце значения. А во втором столбце - ссылка на этот "справочник" - как варианты для проверки данных (выпадающего списка).
    Меняете данные в первом столбце, справочник обновляет значения, во втором столбце появляются новые варианты выбора.
    Ответ написан
    Комментировать
  • Правда ли, что для написания игрового движка нужна очень сложная математика?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Школьная физика + начала матана + линейная алгебра + стереомтрия. Первые 2 курса любого ВУЗа.
    Этого хватит чтобы сделать простую физику (кинематику, динамику), расчёт коллизий, отрисовку, освещение.
    Ответ написан
    1 комментарий
  • Получится ли сохранить файлы в торрентах или IPFS, на десять лет?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Разумно было бы продублировать данные во всех вышеуказанных сервисах + придумать более экзотические способы. Например сделать сайт, куда закодировать в base64 файл на страничках, и прокэшировать его в wayback machine, отправить на email, зашить в видео и залить на youtube и т.п.
    Торрент можно использовать только если есть доступ к компьютеру, который простоит 10 лет подключенный к Интернету без отключения и переустановок системы.
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы Google таблица открывалась в нужном месте?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Правой кнопкой - Получить ссылку на эту ячейку

    6006a931f32a6032473491.png
    Ответ написан
    1 комментарий
  • Как консолидировать данные из нескольких страниц?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Соглашусь с @oshliaer, проще всего в таких исходных - делать формулу скриптом. Вот код для получения списка листов:
    function getSheetNames(){
      return [SpreadsheetApp.getActiveSpreadsheet().getSheets().map(sheet=>sheet.getName())];
    };
    Ответ написан
    1 комментарий
  • Как посчитать позицию вектора?

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

    Формулы для перевода:
    x = x0 + R*cos(phi)
    y = y0 + R*cos(pi/2 - phi) = y0 + R*sin(phi)

    Основаны на том, что проекция вектора на ось(или в общем случае - направление) - это длина вектора умноженная на угол между осью(или направлением) и вектором. Угол считается от направления до вектора против часовой. Если угол "неудобный" (больше 180 градусов, например) - то его всё равно нужно брать. Ну или брать меньший "удобный" угол и учитывать в формуле направление проекции - если направление проекции совпадает с положительным направлением оси - то ставим "+", если в противоположную сторону - то "-".
    Ответ написан
    Комментировать
  • Почему площадь криволинейной трапеции это разность первообразных?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Сначала надо понять что такое производная - по сути это скорость изменения функции. А первообразная - как раз наоборот - то как накапливается значение, если скорость задана.

    Например, есть бассейн в которую льётся вода со скоростью v1(t) = 5. Тогда уровень воды в бассейне h1(t) = h0 + 5*t (<< а эта функция и есть первообразная)
    Или если скорость v2(t) = t, то h2(t) = t*t/2
    Надо построить таблицу руками и нарисовать график - с всё станет понятней.
    Ответ написан
  • Как сделать срез по времени в Эксель?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Самое простое - завести в данные столбцы с показателями, по которым вы будете отсеивать - возраст, жива или нет. Потом делаете фильтр по данным, и суммируете вручную результат. Я так понимаю, это "разовая" или нечастая операция, поэтому это проще, чем делать монстроформулу. Хотя в тех же гугл таблицах есть и те же срезы, и функция FILTER(), и ещё более универсальная QUERY()

    Ну или используйте СУММЕСЛИМН() с условиями - по дате, возрасту и столбцу жива/нет.
    Ответ написан
    1 комментарий
  • Не подкинете тему для курсовой работы с использованием PIC?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    • Я в своё время (в качестве своей ВКР) делал вольтметр на микроконтроллере + кучу схем для него для лабораторного эксперимента на физике (датчики освещенности, поворота, магнитного поля, тока и т.п.)

    • Потом делал что-то вроде термостата
    • Ещё была система управления освещением + сигнализация для коттеджа
    • Связь по CoAP
    • Связь между компьютером и микроконтроллером по UDP/TFTP
    • Часы на индикаторах неоновых
    • Блок питания с управлением через COM порт


    Все защитились на 5, хотя многие темы не совсем актуальные уже, т.к. с тех пор это было сделано 100 раз всеми.

    Для курсовой советую выбрать что-то несложное железно и алгоритмически. Т.к. это "проба себя" (и как правило, задел на диплом) и заморочек с оформлением и т.п. хватит помимо основной работы.
    Ответ написан
    Комментировать
  • Ошибка #ССЫЛ! в IMPORTRANGE в GOOGLE Таблицах. Как исправить?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Видимо данные пересекаются, т.е. верхняя и/или левая формула не может вывести весь массив, т.к. ниже и/или правее что-то уже есть.
    Обойти можно так:
    ={
    IMPORTRANGE(...);
    IMPORTRANGE(...);
    IMPORTRANGE(...)
    }

    Данные выведутся в столбик, только надо чтобы у всех было равное кол-во столбцов
    Ответ написан
    2 комментария
  • Как перенести данные из столбца?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Выбирает непустые значения
    =filter(a:a;a:a<>"")
    А полученное можно разобрать с помощью REGEXTRACT()
    Или использовать что-то вроде этого:
    function REGEXTRACTALL(rows, regExp, flags) {
      flags = flags || "gmi";
      return rows
      .map(r=>r[0])
      .map(el=>(el+"").match(new RegExp(regExp, flags)));
    }

    Использовать как-то так:
    =REGEXTRACTALL(filter(a:a;a:a<>""), "([A-Za-z]+)", "gmi")
    Ответ написан
    Комментировать
  • Как связать данные для импорта из листа в другой лист в Google Таблицах?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Используйте функциию ВПР()
    Можно с помощью ARRAYFORMULA() сделать формулу для столбца всего.
    Ответ написан
    2 комментария
  • Как доказывать логические формулы?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Самое железобетонное и в от же время простое - составить таблицы истинности;
    Ещё можно преобразовать с помощью тождеств (де Моргана, конъюнкция/дизъюнкция с самим собой/0/1, коммуникативные/ассоциативные правила и т.п.) - их не так много, штук 15 базовых.
    Ответ написан
    Комментировать