Здравствуйте, Мне кажется, что Вам нужно подготовить более простой и понятный пример, а также предложить более конкретное название для темы (модераторы самостоятельно поменяют его). Лично мне непонятно, например, как интерпретировать такую запись "1,1,1,(1),2,2,2,(2),3,3,3"
Вы вряд ли найдёте в них буквальные ответы на Ваши вопросы, однако статьи написаны живым и понятным языком - и я надеюсь, что они смогут помочь Вам понять как правильно переформулировать вопросы для того, чтобы получить на них ответы на форуме.
Из общих соображений: В MS Excel есть несколько возможностей для подбора параметра, одна из них так и называется (ищите её исходных её в меню Данные >> Анализ "что если"). Если Вам известна примерная зависимость результирующей функции от её исходных данных и требуется определить лишь один параметр, то в отдельной ячейке задайте его в первом приближении и посчитайте с ним значения вашей_функции для каждой из известных точек и просуммируйте [квадраты] отклонения полученных результатов от заданных значений. А затем попросите эксель перебирая разные значения параметра найти такое, при котором суммарное отклонение окажется минимальным (нулевым). Если же параметров у вашей_функции окажется более одного, то попробуйте разобраться с инструментом Поиск решения (меню Данные >>Анализ; возможно его потребуется предварительно включить в меню Файл >> Параметры >> Надстройки >> Управление). Принцип его работы похож на описанный выше, но возможностей у него больше.
Ирина, По всей видимости, руками не получается откорректировать номер страницы в колонтитулах, однако справка говорит, что это можно сделать при помощи VBA
Код
&P-numberПечать номера страницы за вычетом указанного номера.
Я надеюсь, что Вам поможет лучший специалист по VBA, нежели чем я. В крайнем случае, в колонтитул можно будет последовательно подставлять данные из некоторого массива, сформированного во вспомогательных ячейках...
Здравствуйте, Ирина. Скорее всего это возможно. Вопрос заключается только в том, какие ресурсы и возможности MS Excel Вы сможете задействовать для этой цели. Всем желающим помочь Вам сильно поможет простой пример (без секретной информации), в котором вручную продемонстрированы исходные данные и желаемые результаты.
Александр, Я предполагаю, что реальный случай может оказаться сложнее... Но для представленного примера достаточно собрать во вспомогательных ячейках все данные из ячеек A1 со всех листов и далее работать уже с ними... Также я не большой специалист в сводных таблицах, но мне кажется, что для большего числа данных она может помочь существенно продвинуться в решении. А наиболее современный инструмент - это PQ: соберите все нужные данные в удобном виде и работайте уже с ними.
Владислав, Если Вы сами написали представленную в примере формулу, то должны понимать, что использование функции СУММПРОИЗВ() призвано исключить необходимость использования формул массива для обработки данных из нескольких ячеек. Такая необходимость возникает из-за попытки обработать внутри формулы бредовый текст из массива Лист1!A1:A7. Обработайте его "снаружи" и всё получится без нажатия трёх весёлых клавиш. Лично я так и не смог разобраться как именно должно работать предлагаемое преобразование.
P.S. Для ответа конкретному человеку совершенно необязательно полностью цитировать его сообщение. И внизу каждого вашего поста есть кнопка "отредактировать". =============================== Владислав Столяров написал:
Цитата
но добавлять лишние столбцы нежелательно
Если не желаете добавлять столбцы, то можете сразу переработать до приемлемого уровня текст в "словаре" Лист1!A1:A7
По умолчанию любую формулу массива можно заменить обычной формулой, ссылающейся на соответствующее количество вспомогательных ячеек. Например, если в столбце D на листе 1 записать такую формулу
Подскажите, я правильно понимаю, что в большинстве случаев выбор между функциями ПРАВБ() и RIGHT() определяется длиной имени функции и, поэтому, зависит от языка MS Excel у конкретного пользователя?
БМВ, Я правильно понимаю, что оборот -ПСТР(...)<=0 был выбран потому, что он на один символ короче предложенного выше? А вариант ПОИСКПОЗ(1=1;...) на целых две скобки и последний аргумент?
В таком случае для чего "удлинять" конструкцию СТРОКА($1:$99) абсолютными привязками? Пусть бы себе относительные ссылки скользили вместе с формулами...
Msi2102, Если использовать отредактированный вариант формулы из #17, то пробелы перед индексом не мешают... в отличии от четырёх ведущих нулей в индексе.
Msi2102, в тестовом примере #8 пробел не мешает и не съедает последнюю из 9 цифр... Но только для нового варианта - см. ниже А вот если дата окажется в "полном формате", то она подменит собой нужный результат. В качестве временной "заглушки" можно обнулять такие результаты, но при этом есть риск пропустить нужные индексы с четырьмя ведущими нулями... как в примере БМВ
Я не понимаю почему, но сначала моя формула с тестовой строкой вернула дату. Я опечалился. И решил проверить с оригинальным текстом ТС'а Вернулись нужные цифры. Потом я подставил обратно тестовую строку из #8. Цифры остались. Боюсь дышать теперь...
Юрий, правильно ли я понимаю описанную текстом логику: - количество ночных часов - это 8 часов, умноженные на количество отработанных суточных смен (по 24 часа в табеле) - количество часов в выходные/праздничные дни складывается из следующих слагаемых: -- ПЛЮС сумма часов в графике, отнесённом к выходному дню (литера "в" а 16 строке): в примере присутствуют только 24 смены в праздники... возможны ли обычные 8 часовые смены? -- МИНУС сумма ночных часов в выходные/праздничные дни - по существующей логике эти часы учитываются дважды: как ночные, так и праздничные -- ПЛЮС 9 часов за каждую полную смену (24 часа) в предпраздничный день (текущий день рабочий, а следующий - выходной) -- МИНУС 9 часов за каждую полную смену в праздничный день накануне рабочего (наоборот: текущий день имеет литеру "в" в 16й строке, а следующий - "р")
Если Вам не нравится функция СУММПРОИЗВ, то тот же функционал можно реализовать на базе СЧЁТЕСЛИМН()
Если я правильно Вас понял, то предлагаю вместо столбца Дата в верхней таблице использовать вспомогательный столбец, в котором возвращать текущую дату только для строк, содержащих уникальный номер гаража; а в прочие строки возвращать нули (или пустые значения). Например, это можно получить при помощи такой формулы
Юрий, покажите вручную в каких ячейках какой результат Вам требуется получить и по какому правилу этого можно достичь. Я, к сожалению, по своей невнимательности не нашел даже в какой колонке складываются рабочие часы в будни...
Предложенная формула возвращает 0 корректировку для Пупкина потому, что он отработал 16-го и 30-го: в первом случае он захватил 9 часов понедельника, а во втором - столько же часов за субботу. В предложенном Вами примере только Ромашкин (2-го числа) отработал в будни по ставке выходного дня. В остальных случаях взаимные переработки компенсируют друг друга. Логика работы предложенной формулы следующая: функция СУММПРОИЗВ возвращает сумму произведений первых, вторых и последующих членов векторов, записанных в качестве её аргумента; при этом каждый из векторов состоит двухиз логических нулей и единиц, являющихся результатом сравнения значений в указанных ячейках с заданными константами. Таким образом, каждая из двух функций СУММПРОИЗВ суммирует столько единиц, сколько раз одновременно совпадают три условия: человек отработал 24 часа, текущий день был выходным, а следующий день был праздничным (либо строго наоборот). И в конце концов на 9 часов умножается разница результатов вычисления двух переработок: за будни и за выходные дни. Попробуйте адаптировать её к Вашей конкретной задаче.
ВАЖНО: в предложенную выше формулу следует внести поправку: умножить результат на -1. Либо использовать любые другие соответствующие правки. В актуальном виде она возвращает положительную корректировку за превышение количества отработанных часов в будни над праздничными часами; а следует использовать обратную корректировку.
Здравствуйте, Юрий! Правильно ли я понимаю, что Вам требуется к итоговому расчёту "выходных/праздничных часов" добавить по 9 часов за каждый полностью отработанный предпраздничный день (24 часа колонке, левее коричневой) и вычесть по 9 часов за каждый полностью отработанный праздничный день накануне рабочего (24 часа в колонке левее белой). Этого можно добиться, например, при помощи формул вида:
но для корректной их работы в последний день месяца потребуется в ячейке AI16 указывать является ли рабочим или выходным первый день следующего месяца.
Здравствуйте, Леонид. Правильно ли я понимаю, что перед Вами стоит задача распознавания цвета точки (с заданными координатами?) на картинке формата GIF? А почему Вы думаете, что такую задачу удобнее решать именно в MS Excel?
Ola, не стесняйтесь! У Вас уже получилась прекрасная цикличная формула. А когда будете писать готовить пример в MS Excel, обязательно опишите желаемое словами, а также вручную покажите необходимые результаты в нужных ячейках.
Здравствуйте, Mst Touch! Возможно кто-то догадается о Вашей задаче по приведённому выше описанию, однако, по моему мнению его стоит несколько расширить. Пока мне понятно, что в строках левой таблицы помесячно разворачивается календарь с указанием дней недели - с января 22 по декабрь 25 года. Если Вы хотите сформировать такой же календарь для "зелёной даты", то нарисуйте его вручную в нужных вам ячейках. А как можно будет это автоматизировать - можно будет придумать. ================UPDATE============= На всякий случай: при помощи формулы
Код
=КОНМЕСЯЦА(BN2;-1)+1
можно определить начало того месяца, в который попадает "зелёная дата"
Здравствуйте, D07 Ваша задача решается достаточно просто при помощи создания двух вспомогательных столбцов, содержащих оценки отдельно мальчиков и отдельно девочек. Например, это можно сделать при помощи такой формулы (для мальчиков):
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ($F6;$K$6:$K$9;0));$H6;"")
для девочек - просто измените ссылку на соответствующий диапазон.
С другой стороны, существуют и другие способы (чуть более сложные, зато элегантные: не требующие использования вспомогательных ячеек). Если это будет ещё актуально, то Вам обязательно помогут.
А это вы проходили на уроках математики (алгебры). Это один из коэффициентов в выражения, которое для указанных Вами значений аргумента (1 и 2) принимает значение близкое к 20; а для значений аргумента (7 и - близкое к -20. И, что важно, предложенное МатросомНаЗебре выражение определено на всем диапазоне от 1 до 8, поэтому может использоваться для интерполяции значений функции на всём его протяжении.
Если же Вас интересует откуда МатросНаЗебре взял именно это выражение и его коэффициенты, то может обратиться к нему. Я думаю, что просто подобрал...
Цитата
написал: т.е. мы получим либо 20 либо -20 а не интерполяцию.
Перечитайте, пожалуйста, исходный запрос и задумайтесь подходит ли под Вашу формулировку предложенное решение? На мой взгляд именно такое решение исходного задания является самым лаконичным и по своему красивым.
Цитата из статьи Википедии Интерполя́ция, интерполи́рование (от лат. inter–polis — «разглаженный, подновлённый, обновлённый; преобразованный») — в вычислительной математике нахождение неизвестных промежуточных значений некоторой функции, по имеющемуся дискретному набору её известных значений, определенным способом.
Полина, Ещё Вы можете попробовать просто подставить весь диапазон S11:S21 в качестве аргумента функции, аналогичной записанной в I16, непосредственно в ячейки T11:T21 и ввести её там как формулу массива (а если у вас уже обновился офис 365, то он умеет ещё хитрее работать с диапазонами данных). Если эта функция допускает такие вольности (как та, что указана в примере), то и массив результатов будет корректно сгенерирован.