Xlfn days ошибка

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

Проблема

Объект _xlfn. Префикс отображается перед функцией в формуле. Когда формула вычисляется, отображается #NAME? (значение ошибки).

Причина

Книга Excel содержит функцию, которая не поддерживается в версии Excel, которая выполняется в данный момент. Например, вы могли открыть книгу, содержащую функцию IFERROR, которая не поддерживается в версиях Excel более ранних версий, чем Excel 2007. Функции, которые не поддерживаются в версиях Excel, предшествующих Excel 2007, включают: AVERAGEIF, AVERAGEIFS, MAXIFS, MINIFS, IFS, CUBEKPIMEMBER, CUBEMEMBER, CUBEMEMBERPROPERTY, CUBERANKEDMEMBER, CUBESET, CUBESETCOUNT, CUBEVALUE, COUNTIFS, IFERROR и SUMIFS.

Решение

Удалите неподдерживаемые функции или, если возможно, замените неподдерживаемые функции поддерживаемыми функциями.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функции Excel (по алфавиту)

Функции Excel (по категориям)

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Хитрости »

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


Иногда, при работе с «чужими» файлами(т.е. с теми, которые были созданы или отредактированы на другом ПК), в формулах можно встретить формулы, которые начинаются на =_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
    ссылки
    статистика

      for i,cellObj in enumerate(sheet_formula['R'],1):
           cellObj.value='= days($AG$1,C{0})'.format(i)
           sheet_formula.cell(row=1, column=18).value = 'Days Since'
    

    using this concept to enter the excel formula in excel
    after entering excel formula in excel i am getting «#NAME?» in excel column i don’t know where i am doing wrong

    asked Feb 18, 2020 at 7:35

    user12659741's user avatar

    4

    open-pyxl does not work with some of the excel function. add the full name as such:

    = days($AG$1,C{0})’.format(i)
    change to = _xlfn.days($AG$1,C{0})’.format(i)
    And it will be working correctly.

    If you’re trying to use a formula that isn’t known this could be because you’re using a formula that was not included in the initial specification. Such formulae must be prefixed with xlfn. to work.

    To check if a formula is included you can use:

    from openpyxl.utils import FORMULAE

    print «DAYS» in FORMULAE
    if it false then _xlfn prefixed before the function

    answered Feb 19, 2020 at 6:56

    user12659741's user avatar

     

    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

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

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

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

    Уточнение:

    IFS

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

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

     

    БМВ

    Модератор

    Сообщений: 21650
    Регистрация: 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?

     

    БМВ

    Модератор

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

    Excel 2013, 2016

    #6

    25.02.2020 15:43:19

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

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

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

     

    Galina15

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

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

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

     

    БМВ

    Модератор

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

    Excel 2013, 2016

    #8

    25.02.2020 21:58:36

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

    вот

    тут

     в п 3.9

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

     

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

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

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

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

    #9

    26.02.2020 09:19:53

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

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

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

    Если вы открываете электронную таблицу, которую не создавали, вы можете встретить префикс «__xlfn» перед некоторыми функциями. Общее значение xlfn — «неподдерживаемая функция». Как правило, это означает, что рабочий лист был создан в более новой версии Excel и использует функции, недоступные в текущей версии.

    В показанном примере функция XLOOKUP используется для поиска. XLOOKUP доступен только в Excel 365 и был представлен в 2020 году. Когда книга открывается в более старой версии Excel, появляется префикс __xlfn. Обратите внимание, что исходный результат все еще отображается. Однако формула не будет обновляться, чтобы показать новый результат, если данные изменятся.

    Решение или обходной путь

    Если вы откроете ту же книгу в версии Excel, которая содержит недостающую функцию (-ы), префикс _xlfn исчезнет, ​​и функция будет рассчитываться нормально. Если это невозможно, вы можете использовать другую формулу, которая не зависит от новой функции.

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

    Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • Xinput1 3 dll ошибка при запуске игры
  • Xigncode error 0xe0191009 ошибка при запуске
  • Xiaomitool v2 ошибка при прошивке
  • Xiaomitool v2 ошибка procedure error occurred

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

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