Xlfn ifs как исправить

В файле, при открытии на компьютере, в фомулах, появляется префикс _xlfn.IFS. На экране смартфона отображается все корректно. Подскажите, пож, что можно сделать?
 

Galina15

Пользователь

Сообщений: 3
Регистрация: 25.02.2020

В файле, при открытии на компьютере, в фомулах, появляется префикс _xlfn.IFS. На экране смартфона отображается все корректно. Подскажите, пож, что можно сделать?  

 

Alec Perle

Пользователь

Сообщений: 172
Регистрация: 13.07.2018

#2

25.02.2020 11:00:17

Цитата
Galina15 написал:
Некорректно открывается

Открывается, вероятно, максимально корректно в данных условиях. Дело в том, что функция IFS (ЕСЛИМН) появилась в Excel 2016.

 

sokol92

Пользователь

Сообщений: 4429
Регистрация: 10.09.2017

Это — общий механизм. Если Excel открывает файл, в котором используется встроенная функция из более поздних версий, то к имени (англоязычному) такой функции добавляется префикс «_xlfn.»

Уточнение:

IFS

появилась в 2019.

Изменено: sokol9225.02.2020 15:12:21

 

БМВ

Модератор

Сообщений: 20940
Регистрация: 28.12.2016

Excel 2013, 2016

#4

25.02.2020 15:11:14

Цитата
Alec Perle написал:
IFS (ЕСЛИМН) появилась в Excel

2019

IFS function

Excel for Office 365, Excel for Office 365 for Mac, Excel for the web, Excel 2019, Excel 2019 for Mac,  Less

По вопросам из тем форума, личку не читаю.

 

Galina15

Пользователь

Сообщений: 3
Регистрация: 25.02.2020

Спасибо всем огромное за ответ! Пожалуйста, подскажите, можно самостоятельно и без денег установить Excel 2016 или 2019?

 

БМВ

Модератор

Сообщений: 20940
Регистрация: 28.12.2016

Excel 2013, 2016

#6

25.02.2020 15:43:19

Цитата
Galina15 написал:
можно самостоятельно и без денег установить Excel 2016 или 2019?

Конечно можно, если у вас админские права на машине, установщик подскажет по шагам что делать.  

По вопросам из тем форума, личку не читаю.

 

Galina15

Пользователь

Сообщений: 3
Регистрация: 25.02.2020

БМВ, спасибо Вам!!!! Вы мой спаситель! Подскажите, пож, еще, для тех, кто в танке, где можно скачать excel2016 или 2019 для установки на компе. пробую сейчас, какие-то другие программы пытаются подгрузиться.

 

БМВ

Модератор

Сообщений: 20940
Регистрация: 28.12.2016

Excel 2013, 2016

#8

25.02.2020 21:58:36

Цитата
Galina15 написал:
где можно скачать excel2016 или 2019 для установки на компе.

вот

тут

 в п 3.9

По вопросам из тем форума, личку не читаю.

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 13997
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#9

26.02.2020 09:19:53

Цитата
Galina15 написал:
где можно скачать excel2016 или 2019 для установки на компе

так офф.сайт Microsoft же есть. А взломанное ПО мы тут не обсуждаем.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

Хитрости »

30 Ноябрь 2022              1169 просмотров


Иногда, при работе с «чужими» файлами(т.е. с теми, которые были созданы или отредактированы на другом ПК), в формулах можно встретить формулы, которые начинаются на =_xlfn.(нечто вроде: =_xlfn.MAXIFS, _xlfn.IFERROR и т.п.)
xlfn в Excel
При первом открытии файла такие функции показывают последний успешно вычисленный результат и при вычислении не обновляются, а если попытаться их пересчитать вручную, то в результате можно получить ошибку #ИМЯ!(#NAME!).

Что это и откуда? Для начала попробуем разобраться откуда берется это загадочное _xlfn. и что оно означает. Таким префиксом обозначаются функции, которые были созданы в более новых версиях Excel(чем та, в которой на данный момент открыт файл) и в текущей версии отсутствуют. По сути они читаются как =_xlfn.ИМЯ_ФУНКЦИИ. Например, =_xlfn.MAXIFS – это функция МАКСЕСЛИ(MAXIFS), _xlfn.IFERRORЕСЛИОШИБКА(IFERROR), _xlfn.UNIQUEУНИК(UNIQUE) и т.д. Т.е. после самого префикса _xlfn идет как раз имя недоступной функции на английском. Если Вы увидели такой префикс в своем Excel в какой-либо формуле на листе — значит ваш Excel не поддерживает ту функцию, которая указана после префикса _xlfn.
Ниже перечень некоторых функций с их переводом на русскую локализацию и версии, начиная с которых эти функции будут работать(соответственно для версий ниже функции недоступны):

Префикс Функция и доступность
_xlfn.IFERROR ЕСЛИОШИБКА (доступна, начиная с Excel 2007)
_xlfn.AGGREGATE АГРЕГАТ (доступна, начиная с Excel 2010)
_xlfn.GAMMA ГАММА (доступна, начиная с Excel 2013)
_xlfn.MAXIFS МАКСЕСЛИ (доступна, начиная с Excel 2019 и в Excel 365)
_xlfn.MINIFS МИНЕСЛИ (доступна, начиная с Excel 2019 и в Excel 365)
_xlfn.CONCAT СЦЕП (доступна, начиная с Excel 2019 и в Excel 365)
_xlfn.SORTBY СОРТПО (доступна, начиная с Excel 2019 и в Excel 365)
_xlfn.XLOOKUP ПРОСМОТРХ (доступна, начиная с Excel 2021 и в Excel 365)
_xlfn.UNIQUE УНИК (доступна, начиная с Excel 2021 и в Excel 365)
_xlfn.LAMBDA LAMBDA (доступна только в Excel 365)
_xlfn.TOCOL ПОСТОЛБЦ (доступна только в Excel 365)
_xlfn.TOROW ПОСТРОК (доступна только в Excel 365)

Конечно, в этой таблице перечислены далеко не все функции и их может быть гораздо больше и список будет расти, т.к. Microsoft на данный момент постоянно пополняет коллекцию функций в новых версиях.

Как же появляется это самое _xlfn.ИМЯ_ФУНКЦИИ и откуда Excel вообще понимает, какой именно функции нет и что писать после _xlfn, если в самом текущем Excel такой функции нет? Здесь все достаточно просто — _xlfn.ИМЯ_ФУНКЦИИ создается в тот момент, когда на лист записывается функция, у которой могут быть проблемы с вычислением в более старых версиях. Т.е. создается это в самой исходной книге и еще в той версии Excel, которая эту функцию успешно может вычислить. А записывается в диспетчер имен, как новая именованная формула(вкладка Формулы(Formulas)Диспетчер имен(Name Manager)). При этом имена эти создаются скрытыми – т.е. просто вызвав диспетчер имен мы эти все _xlfn не увидим. И удалить эти имена тоже нельзя, даже если до них добраться.

Так же можно встретить и чуть иной префикс: _xlfn._xlws.SORT и _xlfn._xlws.FILTER. Это как правило относится к формулам динамических массивов. SORT – СОРТ и FILTER – ФИЛЬТР. Эти функции записываются всегда только в одну ячейку, но результат возвращают сразу в несколько. При этом количество занимаемых ячеек в итоге динамически изменяется в зависимости от того, сколько строк и столбцов передано в качестве исходных данных и сколько после обработки было возвращено функцией.

А еще есть и такие имена: _xlfn.ANCHORARRAY и _xlfn.SINGLE. Они тоже относятся к динамическим массивам, но не являются напрямую именно функциями:

  • _xlfn.ANCHORARRAY — означает, что в формуле используется ссылка на динамический массив, вроде такой: =A2#, где =A2 – это ячейка, в которую записана формула динамического массива, а решетка(#) означает, что вернуть необходимо все ячейки, которые входят в динамический массив, созданный формулой в =A2#.
  • _xlfn.SINGLE – означает, что в формуле используется оператор неявного пересечения @. Появляется, когда в формуле указывается ссылка на диапазон ячеек, но использовать в функции надо только одну. Появился вместе с динамическими массивами для избежания неверных вычислений в новых версиях.

  • Можно ли исправить?

    Как же быть, если одна из таких функций попалась в файле? Можно ли как-то её все же сделать вычисляемой?
    Для того, чтобы ответить на эти вопросы разберемся

    для чего это придумано

    . Сделано такое именование(

    _xlfn.ИМЯ_ФУНКЦИИ

    ) неподдерживаемых функций для того, чтобы можно было безошибочно определить, какая именно функция не доступна и при этом не сломать всю формулу, в которой такая функция используется. Но вычислить её, увы, не получится никак. Ведь раз появилось

    _xlfn

    — функции просто нет в текущей версии, а значит вычислить именно её невозможно. Но если определить имя функции(которое записано после префикса) — можно обратиться к справке Microsoft, найти эту функцию и попробовать заменить её доступной функцией(или связкой функций), которая будет выполнять ту же задачу. Да, далеко не всегда для этого может хватить знаний, а в некоторых случаях и вовсе придется использовать VBA для восполнения функционала, т.к. какие-то функции будет невозможно воспроизвести встроенными. Но других вариантов все равно нет: либо так, либо устанавливать ту версию Excel, в которой эти функции есть.
    В данной статье я, к сожалению, тоже никаких однозначных рекомендаций по замене

    _xlfn

    не дам, т.к. все зависит от конкретной задачи, которая выполняется функцией. Могу лишь привести пару примеров простой замены. Например, возьмем классическую ситуацию — есть таблица отгрузок товара:
    Чем заменить МИНЕСЛИ
    надо определить самую минимальную, но при этом не учитывать нулевые отгрузки, т.к. в выходные отгрузка не производится, но в отчете нулевые отгрузки все же есть. В Excel 2019 и новее можно применить одну функцию:

    =МИНЕСЛИ(B2:B10;B2:B10;»>0″)
    =MINIFS(B2:B10,B2:B10,»>0″)

    в более старых версиях вместо неё появится =

    _xlfn.MINIFS(B2:B10;B2:B10;»>0″)

    и её придется заменить такой формулой массива:

    =МИН(ЕСЛИ(B2:B10>0;B2:B10))
    =MIN(IF(B2:B10>0,B2:B10))

    Или другая задача, которая в Excel 2019 и новее легко решается функцией

    МАКСЕСЛИ(MAXIFS)

    . Из таблицы ниже необходимо определить максимальную сумму по операции «приход»:
    Чем заменить МАКСЕСЛИ

    =МАКСЕСЛИ(A2:A10;B2:B10;»приход»)
    =MAXIFS(A2:A10,B2:B10,»приход»)

    в более старых версиях придется опять же решать задачу при помощи нескольких функций формулой массива:

    =МАКС(ЕСЛИ(B2:B10=»приход»;A2:A10))
    =MAX(IF(B2:B10=»приход»,A2:A10))

    А такие функции как

    СОРТ(SORT)

    и

    ФИЛЬТР(FILTER)

    так просто заменить не получится — там уже необходимо применять достаточно серьезные связки функций, да еще и заранее определять минимально необходимое количество ячеек для вывода результата и обрабатывать ошибки «лишних» строк.


    Статья помогла? Поделись ссылкой с друзьями!

      Плейлист   Видеоуроки


    Поиск по меткам

    

    Access
    apple watch
    Multex
    Power Query и Power BI
    VBA управление кодами
    Бесплатные надстройки
    Дата и время
    Записки
    ИП
    Надстройки
    Печать
    Политика Конфиденциальности
    Почта
    Программы
    Работа с приложениями
    Разработка приложений
    Росстат
    Тренинги и вебинары
    Финансовые
    Форматирование
    Функции Excel
    акции MulTEx
    ссылки
    статистика

    RRS feed

    • Remove From My Forums
    • Вопрос

    • Hello All,

      I am using Excel 2016, since few days, I am not able to use IFS formulae in my excel sheet. the formulae is now replaced with _xlfn.IFS and things are not working fine as expected. I made sure that my excel version is up to date. I tried performing repair
      as well. Please let me know how to fix this issue.

      • Изменен тип
        Emi ZhangMicrosoft contingent staff
        20 августа 2018 г. 9:38

    Все ответы

    • Hi Shashank P,

      What’s version of Excel 2016 do you use? IFS function was introduced in «Excel 2016». But really the Office 365 subscription service, not standalone Excel 2016.

      Please go to File- Account and make sure you’re using Office 365 subscription version for Excel:

      So if you open the Excel file in a previous version (including standalone Excel 2016), Excel replaces the function name with _xlfn.IFS. That means Excel recognizes that it is an Excel function, but not a function that is supported by the current version
      of Excel.

      If you want to fix this problem in Excel, you need to use If function to recreate a new formula.

      Hope it’s helpful.

      Regards,

      Emi


      Please remember to mark the replies as answers if they helped. If you have feedback for TechNet Subscriber Support, contact
      tnsf@microsoft.com.


      Click
      here to learn more. Visit the dedicated
      forum to share, explore and talk to experts about Microsoft Teams.

      • Предложено в качестве ответа
        Emi ZhangMicrosoft contingent staff
        20 августа 2018 г. 9:38

    • Hi, 

      Just checking in to see if the information was helpful. Please let us know if you would like further assistance.

      Regards,

      Emi


      Please remember to mark the replies as answers if they helped. If you have feedback for TechNet Subscriber Support, contact
      tnsf@microsoft.com.


      Click
      here to learn more. Visit the dedicated
      forum to share, explore and talk to experts about Microsoft Teams.

    Я динамически генерирую файлы XLSX из java-кода, а также устанавливаю формулы. Все работает нормально, за исключением функции IFS (), хотя всегда кажется, что рендеринг выполняется с использованием строчной буквы «ifs ()», и поэтому libreoffice не распознает ее как функцию при открытии результирующего файла. Все остальные формулы, например старый добрый «ЕСЛИ» работает нормально

    Я пробовал отлаживать исходный код POI ooxml, и последнее, что я могу сказать, это то, что ячейка правильно установлена ​​в верхнем регистре. Я пробовал обновиться до последней версии, предварительно отформатировав содержимое ячеек … пока не повезло. Этот код работает на poi 4.0.1, и я открываю файл с помощью libreoffice 6.1.3.2 (если это может быть проблема с libreoffice?). У меня нет доступа к EXCEL 2016+, чтобы проверить, как он обрабатывает полученный файл.

    public void testIFS(){
        try {
            String IFSformula = "IFS(1,"yes",0,"no")";
            String IFformula = "IF(1,"yes","no")";
            String outputFileName = "IFStest.xlsx";
            XSSFWorkbook workbook = new XSSFWorkbook();
            XSSFSheet poiSheet = workbook.createSheet("ifstest");
            XSSFRow row = poiSheet.createRow(0);
            XSSFCell cell0 = row.createCell(0);
            cell0.setCellFormula(IFSformula);
            XSSFCell cell1 = row.createCell(1);
            cell1.setCellFormula(IFformula);
            workbook.write(new FileOutputStream(outputFileName));
        } catch (IOException ex) {
            Logger.getLogger(IFSTest.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    

    Теперь ячейка 0 заканчивается = ifs (1, «да», 0, «нет») — что неверно (результат — #NAME), но ячейка 1 работает нормально и имеет формулу ячейки = IF (1, » да »,« нет ») (результат« да »). Если я вручную изменю «если» на «IFS», формула будет работать нормально и также покажет «да».

    1 ответ

    Лучший ответ

    Новейшая версия LibreOffice Calc поддерживает IFS. Но если он сохраняет файл *.xlsx, он сохраняет формулы IFS с префиксом _xlfn. Обычно этот префикс _xlfn означает Книга Excel содержит функцию, которая не поддерживается в текущей версии Excel. работает.. Похоже, что LibreOffice Calc пытается сохранить в режиме, совместимом с Excel 2016. IFS — это только с Office 365 и выше. И поскольку он сохраняет с использованием этого префикса, похоже, он ожидает этого префикса и при чтении *.xlsx.

    И даже Office 365 Excel сохраняет _xlfn.IFS в файле *.xlsx, а не только в IFS (протестировано сегодня, 21 января 2019 г.). Так что LibreOffice Calc правильно и ожидает этого префикса.

    Следующее работает для меня с использованием apache poi 4.0.1 для создания *.xlsx и использования LibreOffice Calc (версия: 6.0.7.3 Build ID: 1: 6.0.7-0ubuntu0.18.04.2), а также используя Office 365 для открытия *.xlsx тогда.

    import java.io.FileOutputStream;
    import org.apache.poi.ss.usermodel.*;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    class TestIFS {
    
     public static void main(String[] args) throws Exception {
    
      try (XSSFWorkbook workbook = new XSSFWorkbook(); FileOutputStream out = new FileOutputStream("TestIFS.xlsx")) { 
       String formulaIFS = "_xlfn.IFS(1=0,"first",0=0,"second")";
       String formulaIF = "IF(1=0,"yes","no")";
       Sheet sheet = workbook.createSheet("IFStest");
       Row row = sheet.createRow(0);
       Cell cell = row.createCell(0);
       cell.setCellFormula(formulaIFS);
       cell = row.createCell(1);
       cell.setCellFormula(formulaIF);
       workbook.write(out); 
      }
     }
    }
    


    4

    Axel Richter
    21 Янв 2019 в 20:55

    На чтение 13 мин. Просмотров 8.7k.

    Функция ЕСЛИ (IF) является одной из наиболее часто используемых функций в Excel. ЕСЛИ — простая функция, и люди любят ее, потому что она дает им возможность заставить Excel реагировать, когда информация вводится в электронную таблицу. С ЕСЛИ, вы можете оживить вашу таблицу.

    Но использование одной функции ЕСЛИ часто приводит к использованию второй, и как только вы объединяете более пары ЕСЛИ, ваши формулы могут начать выглядеть как маленькие Франкенштейны 🙂

    Являются ли вложенные ЕСЛИ опасными? Всегда ли они необходимы? Какие есть альтернативы?

    Читайте дальше, чтобы узнать ответы на эти вопросы и многое другое …

    Содержание

    1. 1. Базовый ЕСЛИ
    2. 2. Что значит вложение
    3. 3. Простой вложенный ЕСЛИ (IF)
    4. 4. Вложенный ЕСЛИ (IF) для шкал
    5. 5. Логика вложенных ЕСЛИ
    6. 6. Используйте функцию «Вычислить формулу»
    7. 7. Используйте F9, чтобы определить результаты проверки
    8. 8. Помни об ограничениях
    9. 9. Расставляй круглые скобки как профессионал
    10. 10. Используйте окно подсказки для навигации и выбора
    11. 11. Будьте осторожны с текстом и цифрами
    12. 12. Добавляйте разрывы строк, чтобы облегчить чтение вложенных ЕСЛИ
    13. 13. Уменьшите количество ЕСЛИ с И и ИЛИ
    14. 14. Замените вложенные ЕСЛИ на ВПР
    15. 15. Выберите ВЫБОР
    16. 16. Используйте ЕСЛИМН вместо вложенных ЕСЛИ
    17. 17. Используйте МАКС
    18. 18. Перехват ошибок с помощью ЕСЛИОШИБКА
    19. 19. Используйте «логическую» логику
    20. Когда вам нужен вложенный ЕСЛИ?

    1. Базовый ЕСЛИ

    Прежде чем говорить о вложенном ЕСЛИ, давайте быстро рассмотрим базовую структуру:

    = ЕСЛИ (лог_выражение; [значение_если_истина];[значение_если_ложь])

    Функция ЕСЛИ запускает тест и выполняет различные действия в зависимости от того, является ли результат истинным или ложным.

    Обратите внимание на квадратные скобки … это означает, что аргументы необязательны. Однако вы должны указать либо значение ИСТИНА, либо значение ЛОЖЬ.

    Чтобы проиллюстрировать это, мы используем ЕСЛИ, чтобы проверить результаты и вернуть «Зачтено» для баллов не менее 65:

    Базовый ЕСЛИ
    Базовая функция ЕСЛИ — вернуть «Зачтено» для баллов не менее 65

    Ячейка D4 в примере содержит эту формулу:

    = ЕСЛИ (С4 > = 65; «Зачтено»)

    Что можно прочитать так: если количество баллов в ячейке C4 составляет не менее 65, вернуть «Зачтено».

    Однако обратите внимание, что если оценка меньше 65, ЕСЛИ возвращает ЛОЖЬ, так как мы не указали «значение_если_ложь». Чтобы отобразить «Не зачтено» для непроходных оценок, мы можем добавить «Не зачтено» в качестве ложного аргумента следующим образом:

    = ЕСЛИ (С3 > = 65; «Зачтено»; «Не зачтено»)

    Базовая функция ЕСЛИ
    Базовая функция ЕСЛИ — с добавленным значением_если_ложь

    2. Что значит вложение

    Вложенность означает объединение формул, одна внутри другой, так что одна формула обрабатывает результат другой. Например, вот формула, в которой функция СЕГОДНЯ (TODAY) вложена в функцию МЕСЯЦ (MONTH):

    = МЕСЯЦ (СЕГОДНЯ ())

    Функция СЕГОДНЯ (TODAY) возвращает текущую дату внутри функции МЕСЯЦ (MONTH). Функция МЕСЯЦ (MONTH) берет эту дату и возвращает текущий месяц. Даже в формулах средней сложности часто используются вложения, поэтому вы увидите их в более сложных формулах.

    3. Простой вложенный ЕСЛИ (IF)

    Вложенный ЕСЛИ — это всего лишь два оператора ЕСЛИ в формуле, где один оператор ЕСЛИ появляется внутри другого.

    Чтобы проиллюстрировать это, ниже я расширил оригинальную формулу «Зачтено/Не зачтено», приведенную выше, для обработки «пустых» результатов, добавив функцию еще одну функцию ЕСЛИ:

    Простой вложенный ЕСЛИ
    Простой вложенный ЕСЛИ

    = ЕСЛИ (С4 = «»; «Неявка»; ЕСЛИ (С4> = 65; «Зачтено»; «Не зачтено»))

    Внешний ЕСЛИ запускается первым и проверяет, является ли ячейка C4 пустой. Если это так, внешний ЕСЛИ возвращает «Неявка», а внутренний ЕСЛИ никогда не запускается.

    Если ячейка не пуста, внешний ЕСЛИ возвращает ЛОЖЬ, и запускается вторая функция ЕСЛИ.

    4. Вложенный ЕСЛИ (IF) для шкал

    Вам часто будут встречаться вложенные ЕСЛИ, настроенные для обработки «шкал» … например, для назначения оценок, стоимости доставки, налоговых ставок или других значений, которые изменяются в шкале с числовым вводом. Пока в шкале не слишком много уровней, вложенные ЕСЛИ работают нормально. Но нужно быть внимательными, иначе формула может стать не читабельной.

    Хитрость заключается в том, чтобы выбрать направление (от высокого к низкому или от низкого к высокому), а затем соответствующим образом структурировать условия. Например, чтобы присвоить оценки в порядке «от низкого до высокого», мы можем представить решение, отраженное в следующей таблице. Обратите внимание, что нет условия для «Отлично», потому что, как только мы выполним все остальные условия, мы знаем, что баллов должно быть больше 90, и, следовательно, «Отлично».

    Баллы Оценка Условие
    0 — 63 Неуд. < 64
    64 — 72 Удовл. < 73
    73 — 89 Хорошо < 90
    90 — 100 Отлично  

    С четко понятными условиями мы можем ввести первый оператор ЕСЛИ:

    = ЕСЛИ (С5 <64;»Неуд.»)

    Мы позаботились о «Неуд.». Теперь, чтобы обработать «Удовл.», нам нужно добавить еще одно условие:

    = ЕСЛИ (С5 <64; «Неуд.»; ЕСЛИ (С5 <73; «Удовл.»))

    Обратите внимание, что я просто добавил еще один ЕСЛИ в первый для «ложного» результата. Чтобы расширить формулу для обработки оценки «Хорошо», мы повторяем процесс:

    = ЕСЛИ (С5 <64; «Неуд.»; ЕСЛИ (С5 <73; «Удовл.»; ЕСЛИ (С5 <90; «Хорошо»)))

    Мы обработали все оценки и дошли до последнего уровня «Отлично». Вместо добавления еще одного ЕСЛИ, просто добавьте итоговую оценку для ЛОЖЬ.

    = ЕСЛИ (С5 <64; «Неуд.»; ЕСЛИ (С5 <73; «Удовл.»; ЕСЛИ (С5 <90; «Хорошо»; «Отлично»)))

    Вот последняя вложенная формула ЕСЛИ в действии:

    Завершенный вложенный пример ЕСЛИ для расчета оценок
    Завершенный вложенный пример ЕСЛИ
    для расчета оценок

    5. Логика вложенных ЕСЛИ

    Многие формулы решаются изнутри, потому что «внутренние» функции или выражения должны решаться в первую очередь, чтобы остальная часть формулы работала.

    Вложенные ЕСЛИ имеют свою логику, поскольку «внешние» ЕСЛИ действуют как ворота к «внутренним» ЕСЛИ. Это означает, что результаты внешних ЕСЛИ определяют, работают ли внутренние ЕСЛИ. Диаграмма ниже визуализирует логический ход формулы расчета оценок выше.

    Логика вложенной функции ЕСЛИ

    6. Используйте функцию «Вычислить формулу»

    В Windows вы можете использовать функцию «Вычислить формулу», чтобы шаг за шагом посмотреть, как Excel решает ваши формулы. Это отличный способ «увидеть» логический поток более сложных формул и устранить неполадки, если что-то не работает. Кнопку «Вычислить формулу» можно найти на ленте на вкладке Формулы.

    Функция Вычислить формулу в ленте
    Функция Вычислить формулу в ленте

    На экране ниже показано «окно Вычисление формулы», открытое и готовое к работе. Каждый раз, когда вы нажимаете кнопку «Вычислить», вычисляется «следующий шаг» в формуле.

    Окно Вычисление формулы
    Окно Вычисление формулы

    К сожалению, версия Excel для Mac не содержит этой функции, но вы можете использовать прием, описанный ниже.

    7. Используйте F9, чтобы определить результаты проверки

    Когда вы выбираете выражение в строке формул и нажимаете клавишу F9, Excel решает только выбранную часть. Это крутой способ проверить, что на самом деле делает формула. В приведенном ниже примере я использую окна с подсказками для выбора различных частей формулы. Затем нажимаю F9, чтобы увидеть, результат вычисления этой части формулы:

    Проверка вложенного ЕСЛИ
    Проверка вложенного ЕСЛИ
    Результат проверки с клавишей F9
    Результат проверки с клавишей F9

    Используйте Ctrl + Z (Command + Z на Mac), чтобы отменить F9. Вы также можете нажать Esc, чтобы выйти из редактора формул без каких-либо изменений.

    8. Помни об ограничениях

    В Excel есть ограничения на то, насколько глубоко вы можете вкладывать функции ЕСЛИ. До Excel 2007 Excel допускал до 7 уровней вложенных ЕСЛИ. Excel после 2007 поддерживает до 64 уровней.

    Однако то, что вы можете вкладывать много ЕСЛИ, не означает, что это нужно делать. Каждый дополнительный уровень, который вы добавляете, усложняет понимание формулы и устранение неполадок. Если вы работаете с вложенным ЕСЛИ глубиной более чем на несколько уровней, вам стоит рассмотреть альтернативные варианты, приведенные ниже.

    9. Расставляй круглые скобки как профессионал

    Одной из проблем с вложенными ЕСЛИ является сопоставление или «балансировка» скобок. Если круглые скобки стоят не там, где нужно или их меньше, чем требует формула, результат вы не получите. К счастью, Excel предоставляет несколько инструментов, которые помогут вам убедиться, что круглые скобки «сбалансированы» при редактировании формул.

    Во-первых, если у вас несколько наборов скобок, круглые скобки имеют цветовую кодировку, поэтому открывающие скобки соответствуют закрывающим скобкам. Эти цвета нелегко рассмотреть, но при желании — можно:

    Цветные скобки
    Цветные скобки

    Во-вторых, когда вы закроете круглые скобки, Excel выделит соответствующую пару. Вы также можете щелкнуть в формуле и использовать клавишу со стрелкой для перемещения по скобкам, и Excel будет выделять обе скобки, когда есть совпадающая пара. Если нет совпадений, вы не увидите жирного шрифта.

    Пара скобок выделена жирным
    Пара скобок выделена жирным

    К сожалению, выделение шрифтом — это функция только для Windows. Если вы используете Excel на Mac для редактирования сложных формул, иногда имеет смысл скопировать и вставить формулу в хороший текстовый редактор, чтобы получить лучшие инструменты для сопоставления скобок. Вы можете вставить формулу обратно в Excel после того, как вы все исправите.

    10. Используйте окно подсказки для навигации и выбора

    Когда дело доходит до навигации и редактирования вложенных ЕСЛИ, окно подсказки — ваш лучший друг. С его помощью вы можете перемещаться и точно выбирать все аргументы во вложенном ЕСЛИ:

    Выберите аргументы формулы с помощью подсказки на экране
    Выберите аргументы формулы с помощью подсказки на экране

    11. Будьте осторожны с текстом и цифрами

    При работе с функцией ЕСЛИ, убедитесь, что вы правильно сопоставляете цифры и текст. Я часто вижу вот такие формулы ЕСЛИ:

    = ЕСЛИ (А1 = «100»; «Зачтено»; «Не зачтено»)

    Является ли результат теста в А1 действительно текстом, а не числом? Нет? Тогда не используйте кавычки с числом. В противном случае логический тест вернет ЛОЖЬ, даже если значение является проходным баллом, потому что «100» не совпадает с 100. Если тестовый балл является числовым, используйте вот такую формулу:

    = ЕСЛИ (А1 = 100; «Зачтено»; «Не зачтено»)

    12. Добавляйте разрывы строк, чтобы облегчить чтение вложенных ЕСЛИ

    Когда вы работаете с формулой, которая содержит много уровней вложенных ЕСЛИ, довольно сложно уследить за правильностью формулы. Поскольку Excel не беспокоят разрывы строк в формулах, вы можете значительно улучшить читаемость вложенных ЕСЛИ, добавив их.

    Например, на приведенном ниже экране показан вложенный ЕСЛИ, который рассчитывает комиссионную ставку на основе суммы продажи. Здесь вы можете увидеть типичную вложенную ЕСЛИ-структуру, которую трудно расшифровать:

    Вложенные ЕСЛИ без разрывов строк трудно читать
    Вложенные ЕСЛИ без разрывов строк трудно читать

    Однако, если я добавляю разрывы строк перед каждым «значением_если_ ложь», логика формулы легко читается. Кроме того, формулу легче редактировать:

    Разрывы строк облегчают чтение вложенных ЕСЛИ
    Разрывы строк облегчают чтение вложенных ЕСЛИ

    Вы можете добавить разрывы строк в Windows с помощью Alt + Enter, на Mac — Control + Option + Return.

    13. Уменьшите количество ЕСЛИ с И и ИЛИ

    Вложенные ЕСЛИ — мощный инструмент, но формулы быстро становятся громоздкими, когда вы добавляете больше уровней. Один из способов избежать большего количества уровней — использовать ЕСЛИ в сочетании с функциями И (AND) и ИЛИ (OR). Эти функции возвращают простой результат ИСТИНА / ЛОЖЬ, который отлично работает внутри ЕСЛИ, поэтому вы можете использовать их для расширения логики одного ЕСЛИ.

    Например, в приведенной ниже задаче мы хотим поставить «х» в столбце D, чтобы отметить строки, где цвет «красный», а размер «маленький».

    ЕСЛИ с функцией И
    ЕСЛИ с функцией И проще, чем два вложенных ЕСЛИ

    Мы могли бы написать формулу с двумя вложенными ЕСЛИ, вот так:

    = ЕСЛИ (В3 = «красный»; ЕСЛИ (С3 = «маленький»; «х»; «»); «»)

    Однако, заменив одну проверку на функцию И, мы можем упростить формулу:

    = ЕСЛИ (И (В3 = «красный»; С3 = «маленький»); «х»; «»)

    Таким же образом, мы можем легко расширить эту формулу с помощью функции ИЛИ, чтобы проверить наличие красного ИЛИ синего И маленького:

    = ЕСЛИ (И (ИЛИ (В3= «красный»; В3= «синий»);С3= «маленький»);»х»; «»)

    Все то же самое можно сделать с помощью вложенных ЕСЛИ, но формула быстро станет сложной.

    14. Замените вложенные ЕСЛИ на ВПР

    Когда вложенный ЕСЛИ просто присваивает значения на основе одного значения, его можно легко заменить функцией ВПР (VLOOKUP). Например, этот вложенный ЕСЛИ присваивает номера пяти различным цветам:

    = ЕСЛИ (F2 = «красный»; 100; ЕСЛИ (F2 = «синий»; 200; ЕСЛИ (F2 = «зеленый»; 300; ЕСЛИ (F2 = «оранжевый»; 400;500))))

    Мы можем легко заменить все ЕСЛИ одним ВПР:

    = ВПР (F2; В3:C7; 2; 0)

     Вложенный ЕСЛИ против ВПР
    Вложенный ЕСЛИ против ВПР

    Хотя в приведенной выше формуле используется точное соответствие, вы можете легко использовать ВПР для приблизительного поиска.

    15. Выберите ВЫБОР

    Функция ВЫБОР (CHOOSE) может предоставить элегантное решение, когда вам необходимо отобразить простые последовательные числа (1,2,3 и т.д.) для произвольных значений.

    В приведенном ниже примере ВЫБОР (CHOOSE) используется для создания пользовательских сокращений дней недели:

    Функция ВЫБОР
    Функция ВЫБОР

    Конечно, вы можете использовать длинный и сложный вложенный ЕСЛИ, чтобы сделать то же самое, но, пожалуйста, не надо 🙂

    16. Используйте ЕСЛИМН вместо вложенных ЕСЛИ

    Если вы используете Excel 2016, у Office 365 есть новая функция, которую вы можете использовать вместо вложенных ЕСЛИ: функция ЕСЛИМН (IFS). Функция ЕСЛИМН (IFS) предоставляет специальную структуру для оценки нескольких условий без вложенности

    Перепишем формулу из примера про оценки с использованием ЕСЛИМН:

    = ЕСЛИМН (C5 <64; «Неуд.»; C5 <73; «Удовл.»; C5 <90; «Хорошо»; C5> = 90; «Отлично»)

    Обратите внимание, в формуле всего одна пара скобок!

    Что происходит, когда вы открываете электронную таблицу, которая использует функцию ЕСЛИМН (IFS) в более старой версии Excel? В Excel 2013 и 2010 (и я верю в Excel 2007, но не могу проверить) вы увидите «_xlfn» в ячейке. Ранее вычисленное значение все еще будет там, но если формула пересчитается, вы увидите ошибку #ИМЯ?.

    17. Используйте МАКС

    Иногда вы можете использовать МАКС (MAX) или МИН (MIN) очень интересным способом, избегая оператора ЕСЛИ (IF). Предположим, что у вас есть расчет, который должен привести к положительному числу или нулю. Другими словами, если вычисление возвращает отрицательное число, вы просто хотите показать ноль.

    Функция МАКС дает вам способ сделать это без ЕСЛИ:

    = МАКС (расчет; 0)

    Этот метод возвращает результат вычисления, если положительный, и ноль в противном случае.

    Я люблю эту конструкцию, потому что она очень проста.

    18. Перехват ошибок с помощью ЕСЛИОШИБКА

    Классическим использованием ЕСЛИ является перехват ошибок и предоставление другого результата при возникновении ошибки, например:

    = ЕСЛИ (ЕОШИБКА (формула); значение_если_ошибка; формула)

    Это уродливо и неудобно, так как одна и та же формула вводится дважды, и Excel должен вычислять одно и то же несколько раз, если ошибки нет.

    В Excel 2007 была введена функция ЕСЛИОШИБКА (IFERROR), которая позволяет более элегантно отлавливать ошибки:

    = ЕСЛИОШИБКА (формула; значение_если_ошибка)

    Теперь, когда формула выдает ошибку, ЕСЛИОШИБКА просто возвращает указанное вами значение.

    19. Используйте «логическую» логику

    Вы также можете иногда избегать вложенных ЕСЛИ, используя так называемую «логическую логику». Слово логическое относится к значениям ИСТИНА / ЛОЖЬ. Хотя Excel отображает слова ИСТИНА и ЛОЖЬ в ячейках, внутренне Excel воспринимает ИСТИНА как 1, а ЛОЖЬ как ноль.

    Вы можете использовать этот факт для написания умных и очень быстрых формул. Например, в приведенном выше примере с ВПР (VLOOKUP) у нас есть вложенная формула ЕСЛИ, которая выглядит следующим образом:

    = ЕСЛИ (F2 = «красный»; 100; ЕСЛИ (F2 = «синий»; 200; ЕСЛИ (F2 = «зеленый»; 300; ЕСЛИ (F2 = «оранжевый»; 400;500))))

    Используя логическую логику, вы можете переписать формулу следующим образом:

    = (F2 = «красный») * 100 + (F2 = «синий») * 200 + (F2 = «зеленый») * 300+ (F2 = «оранжевый») * 400+ (F2 = «фиолетовый») * 500

    Каждое выражение выполняет тест, а затем умножает результат теста на «значение, если оно истинно». Поскольку тесты возвращают значение ИСТИНА или ЛОЖЬ (1 или 0), результаты ЛОЖЬ фактически отменяют формулу.

    Для числовых результатов логическая логика проста и чрезвычайно быстра, так как нет разветвлений. С другой стороны, логическая логика может сбивать с толку людей, которые не привыкли к ней. Тем не менее, это отличная техника, чтобы знать о ней.

    Когда вам нужен вложенный ЕСЛИ?

    Со всеми этими опциями для избежания вложенных ЕСЛИ, вы можете задаться вопросом: «А когда же его использовать?»

    Я думаю, что вложенные ЕСЛИ имеют смысл, когда вам нужно оценить несколько различных входных данных для принятия решения.

    Например, предположим, что вы хотите определить статус счета-фактуры «Оплачено», «Ожидание», «Просрочено» и т.д. Для этого необходимо посмотреть дату счета-фактуры и остаток задолженности:

    Расчет статуса счета-фактуры с помощью вложенного ЕСЛИ
    Расчет статуса счета-фактуры с помощью вложенного ЕСЛИ

    В этом случае вложенный ЕСЛИ является идеальным решением.

    Понравилась статья? Поделить с друзьями:

    Читайте также:

  • Xsession warning unable to write to tmp x session may exit with an error
  • Xio fatal io error 11
  • Xsane ошибка сегментирования
  • Xrrender r2 dll error
  • Xinput1 3 dll error fix

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии