Предлагаю рабочий вариант простой базы данных, с которой могут работать четыре оператора. Можно увеличить количество операторов до "сколько надо" В приложенном файле пять листов: четыре предназначены для заполнения разными операторами (ВАЖНО: их диапазоны не должны пересекаться! - они закрашены зелёным. Прелесть в том, что диапазоны ячеек могут иметь любую форму, главное, чтобы любая из ячеек одного оператора не совпадала с одноименной ячейкой другого оператора), а пятый лист содержит простую формулу (ячейка Е3), которую надо растянуть на нужное количество ячеек вниз и вправо. Формула работает так: суммирует пустые одноименные ячейки на всех четырех листах и, если среди них заполнена лишь одна, то формула вставляет это единственное значение в одноименную ячейку пятого, итогового, листа. Если все четыре ячейки пустые, то в одноименной ячейке итогового листа тоже пусто. Если же кто-то из операторов сделал ошибку и ввел данные не в свой диапазон, то произойдёт наложение данных в двух одноименных ячейках на разных листах. Формула на итоговом листе выдает предупреждение: "НАЛОЖЕНИЕ!". Вот, в общем-то, всё. Милости прошу потестировать и улучшить.
p.s. конечно, можно было бы сваять вариант со сводными таблицами, но мне захотелось попроще.
Станислав, огромное спасибо! Работает как надо. Вопрос: зачем в первой строке макроса присутствует знак "&"? (Dim lsRow_1&, lsRow_2&.....) Ещё раз спасибо.
Здравствуйте! Помогите, пожалуйста, не могу сам сваять макрос. Сделал только сортировку. На листе1 заполняется список (своеобразная база телефонов и адресов). При нажатии на картинку (в ячейке "ИМЯ" ) список автоматически сортируется по алфавиту. Мне надо, чтобы в макросе сортировки вставить переменный конец списка. Второе: какую строчку добавить в макрос, чтобы он автоматически копировал на лист2 все данные, у которых в столбце G есть заполнение (совершенно любой знак, даже точка)? Конечно, предварительно очистив лист2 от старых данных. Спасибо. p.s. Excel 2003
Хочу, чтобы окно сообщения появлялось не в центре листа, а, например, в правом верхнем углу. Как это прописать в коде макроса VBA, что добавить к строчке типа msgbox "(сообщение)"? Спасибо.
Ivan.kh, Уже теплее, спасибо. Однако, при вводе в F6 210° 27' 56'' результат не соответствует нужному. Надо (F6-180)
Повторю условия работы формулы: если 0<=F6<(90) то G5=F6, если 90<=F6<(180), то G5= 180-F6 если 180<=F6<(270), то G5= F6-180 если 270<=F6<(360-), то G5= 360-F6
MCH, Ваша формула тоже работает, однако с той же ошибкой: в минуте 100 секунд, в градусе 100 минут. Например, если в ячейке F6 ввести значение 178° 33' 04'', то формула выдаёт результат 1° 66' 96", а надо 1° 26' 56''. Я не знаю, как исправить
Заметил баг: В расчетах градусы правильные, а минуты и секунды посчитаны не верно. В одном градусе 60 минут и в минуте 60 секунд соответственно, а судя по расчетам их получается по 100. Как можно исправить?
Нет, не то. Надо, чтобы в ячейке G5 была формула, анализирующая все эти условия (см. прикреплённый файл из #3):
если 0<F6<(90-1 секунда) то G5=F6, если 90<F6<(180-1 секунда), то G5= 180-F6 если 180<F6<(270-1 секунда), то G5= F6-180 если 270<F6<(360-1 секунда), то G5= 360-F6
Прикладываю файл. Здесь нужно рассчитать внешний угол (ячейка G5) в зависимости от дирекционного угла (ячейка F6) по той же методике - если 0<F6<90, то G5=F6 и т.д. Спасибо за отклик.
Здравствуйте! Как написать такую формулу в ячейке В1 (в градусах, минутах и секундах), в зависимости от значения ячейки А1(в градусах, минутах и секундах): если 0<А1<90 то В1=А1, если 90<А1<180, то В1= 180-А1 если 180<А1<270, то В1= А1-180 если 270<А1<360, то В1= 360-А1 Чувствую, что тут надо использовать формулу массива, но не умею ею пользоваться. Помогите мне, пожалуйста, составьте такую формулу, а я её проанализирую, поучусь. Спасибо. p.s. А может быть, можно применить вложенные "ЕСЛИ"?
ikki, огромное спасибо за формулу, даже не думал что это возможно! (ушел изучать формулу) p.s. через пять минут: а как сделать, чтобы при равенстве значений А и F копировалось бы ещё старое значение ячейки столбца С, а не новое, следующее ? p.p.s через двадцать минут: сам нашёл: =ИНДЕКС($C$4:$C$30;ПОИСКПОЗ(($F4-1);$A$3:$A$30;1))
Здравствуйте! В приложенном файле нужно сравнивать значения из столбца F со значениями в столбце А по такому условию: Сравниваются значения F4, F5, F6 и т.д., с ячейкой А4 до тех пор, пока они не превысят значения А4 (равняться могут). Результатом такой проверки становится копирование результата ячейки С4 в ячейку столбца F на соответствующей строке. Как только значение в столбце F (на листе ячейка F9) превысит значение ячейки А4, начинается сравнение с ячейкой А5 и уже копирование - вставка значения из этой ячейки. Для понимания я обозначил цветом. В столбце Н уже показаны несколько результатов, как бы после работы макроса. Я сделал небольшой макрос копирования по условию, но и он не работает. Прошу помочь мне - здесь нужны несколько вложенных циклов, как я понимаю, а сделать, увы, не получается. Спасибо. p.s. Значения в столбце А и F идут только в возрастающем порядке. Пустых строк не предвидится