Привет! Часто приходится повторять в формулах один и тот же фрагмент несколько раз. Чтобы избежать этого, можно использовать вспомогательную ячейку или определить имя. Однако это не всегда возможно, да и неудобно. Разработчики сделали шаг в этом направлении, создав функцию ЕСЛИОШИБКА в Excel 2007: функция
=ЕСЛИОШИБКА(длинная_формула;значение)
заменяет такую комбинацию функций предыдущих версий:
Кроме повтора длинного фрагмента, если "все хорошо" и нет ошибки, он еще и вычисляется два раза, что может замедлить пересчет.
И я решил создать на VBA функцию, которая обладает следующими свойствами: - Если у нее есть аргумент, функция возвращает значение аргумента, а также сохраняет значение и диапазон, откуда она вызвана (Application.Caller). - Если аргумент опущен, то Application.Caller сравнивается с сохраненным. Если он совпадает, функция возвращает сохраненное значение. Если не совпадает, возвращается ошибка.
Функцию назвал М по аналогии с кнопкой калькулятора "память". Кроме того, имя функции состоит из одной буквы, чтобы формулы получались максимально короткими. "М" можно вводить и в русской, и в английской раскладке, в модуле находятся оба варианта функции.
Аналог функции ЕСЛИОШИБКА можно реализовать так с помощью М:
=ЕСЛИ(ЕОШИБКА(М(длинная_формула));значение;М())
Функция М рассчитана на то, что ее аргумент может иметь разный тип: диапазон, массив, ошибка.
Прошу потестировать.
В качестве развития можно предусмотреть сохранение нескольких значений из одной ячейки. Как лучше поступить? Создать отдельные функции М(х), М1(х), М2(х), ..., М9(х) или М(х) и М(х, n) со вторым аргументом? В первом случае запись короче, во втором появляется возможность выбирать одно из сохраненных значений в процессе вычисления. Например, использовать одно из сохраненных значений для выбора другого: М(,М(,1)). Все же наиболее часто будет использоваться сохранение одного значения, поэтому простая функция М() должна остаться в любом случае.
И, конечно, надо оформить функцию в виде надстойки.
Привет! Эта тема для тех, кто хочет сообщить о своем врЕменном отсутствии на форуме. Пишите, куда уезжаете - может быть, в том городе Вы встретитесь с кем-то из форумчан лично? Потом поделИтесь впечатлениями.
Я сегодня уезжаю в Саров и планирую вернуться в субботу 3 сентября. Есть кто-нибудь из Сарова?
Привет! После двух попыток установки конвертера файлов Офис 2007 на мою домашнюю систему (Win2000 SP4 рус + Офис2000 SP-3 рус) он так и не заработал :(, и я озаботился поиском онлайн конвертера. Сначала наткнулся на пару сайтов, на которые можно было загрузить файл или ввести URL и указать почту, куда они обещали быстро прислать файл. Ну-ну. С одного пришел ответ через 3 часа (DocX-Converter.com), с другого - на следующий день (zamzar.com). Решил варианты с доставкой по почте не рассматривать. Потом была еще пара сайтов, но один так и не выдал результат, на другом пришлось долго переходить по этапам ввода информации (ессно, просматривая кучу рекламы). И вот, наконец, он:
Все происходит быстро и на одном экране. В случае с форумом: правый клик на ссылке на файл XLSX - Копировать ссылку - вставить в поле "Enter file url" - НАЖАТЬ "Add"!!! - в поле "Convert to" выбрать XLS - нажать "Convert". Ссылка на готовый файл появляется через несколько секунд.
Здравствуйте. Сегодня опять резануло глаз слово "диап0зон". Посмотрел статистику Яндекса по неправильному написанию слова по форуму и по всему инету (см. вложение). Результаты: По форуму 940 / 20000 => 4,5% неправильно; По инету 184000 / 8000000 => 2,25% неправильно.
Диапазон - один из ключевых терминов Excel. Грустно от того, что на специализированном форуме по Excel это слово так часто пишется неправильно.
PS В этом сообщении слово написано через ноль, чтобы не усугублять статистику.
Привет, планетяне! Просматривая список тем, я уже несколько раз замечал любопытные сочетания. Вот и сейчас. Давайте помещать скриншоты таких сочетаний в эту тему.
Вкратце: у автора есть лист Excel с большим количеством внедренных документов Word (~1000). Он хочет получить документ Word, в который слито содержимое внедренных документов.
Здесь решение. В строке состояния отображается ход работы, в конце показывается полученный документ.