From The Document Foundation Wiki
- Wiki Home
- Development
- Design
- QA
- Events
- Documentation
- Website
- Localization
- Accessibility
- Marketing
- Diversity
- Wiki Help
- Documentation Home
- Official Publications
- Other Resources
- FAQ
- HowTo
- Macros
- Docs Development
Function name:
IFERROR
Category:
Logical
Summary:
Evaluates one argument and if no error is found, the value of that argument is returned. If an error is found, then a second argument is evaluated, and its value is returned.
Syntax:
IFERROR(Value; Alternative Value)
Returns:
Returns a value whose type depends on the argument selected as the return value.
Arguments:
Value is an expression, or a reference to a cell containing an expression, that is evaluated and returned if no error is found.
Alternative Value is an expression, or a reference to a cell containing an expression, that is evaluated and returned only if an error was found during the evaluation of Value.
- The IFERROR function does not evaluate Otherwise Value if the evaluation of Then Value proceeds without an error. For example, the formula
=IFERROR(23; 1/0)
returns 23. While1/0
might be expected to generate a #DIV0! error, the division is never attempted in this case.
Additional details:
Details specific to IFERROR function
=IFERROR(X; Y)
is semantically equivalent to =IF(ISERROR(X); Y; X)
, except that the former case is more efficient because X is only computed once.
General information about Calc’s logical functions
Note: |
Calc uses the numbers 0 (FALSE) and 1 (TRUE) to represent logical values. For example, enter 1 in a cell that has the default general number format. Then select ▸ on the Menu bar to display the Format Cells dialog, select the Boolean Value option in the Category area of the Numbers tab, and click the OK button. Notice that the number 1 is now displayed as TRUE. To revert to displaying the number 1, repeat the process but select Number instead of Boolean Value.
To enter a logical value into a cell, simply type either TRUE or FALSE (case-insensitive) into the cell. Calc will recognize the logical value, display it in uppercase letters, and change the cell’s format to that appropriate to Boolean values.
Calc functions that produce a logical result return a number, either 0 or 1. In the case of a formula that simply calls such a logical function and is in a cell that has the default general number format, the cell is switched to the Boolean value format and the returned value is displayed as FALSE or TRUE. For example =TRUE()
returns the value 1, which is displayed as TRUE; if you then change the format to a numerical format, it is displayed as the number 1.
Calc functions that test for a logical result always evaluate the expression to be tested and check if it is equal to 0. The value 0 is taken as FALSE and any other value is taken as TRUE. For example, =NOT(0)
returns TRUE and =NOT(57.89)
returns FALSE.
In contrast to Calc, Microsoft Excel has a separate type for logical values — they are not numbers but are sometimes converted to numbers. Take care therefore if you need compatibility.
Examples:
Formula | Description | Returns |
---|---|---|
=IFERROR(2; 5) | Here the first argument contains no error and so the function returns 2. | 2 |
=IFERROR(SQRT(−2); 23) | Here the first argument contains an invalid argument error (Err:502) and so the function returns the value of the second argument. | 23 |
=IFERROR(ASIN(45); 3/0) | Here the first argument contains a #NUM! error and so the function returns the value of the second argument. However, the second argument contains a division by 0 error. | #DIV/0! |
=IFERROR(C8; C9) where cell C8 contains =1/0 and cell C9 contains the text «Error found». | Here the first argument contains a #DIV/0! error and so the function returns the value of the second argument. | «Error found» |
=IFERROR(C8; C9) where cell C8 contains =13 and cell C9 contains the text «Error found». | Here the first argument contains no error and so the function returns its value. | 13 |
AND
FALSE
IF
IFNA
IFS
ISERROR
NOT
OR
SWITCH
TRUE
XOR
ODF standard:
Section 6.15.5, part 2
Equivalent Excel functions:
IFERROR
Функция IFERROR является одним из обработчиков внутренних ошибок электронных таблиц при расчётах в LibreOffice Calc. Что это значит? Это значит, что, если в ячейке в результате расчёта получается какая-либо внутренняя ошибка Calc (типа «Деление на ноль»), то функция IFERROR обработает такое событие и в ячейку запишет не код ошибки, который мешает производить дальнейшие действия с этой ячейкой, а заданное пользователем значение, будь то число или текст. Это очень удобно в том случае, если у Вас есть большая таблица, в которой исходные данные задаются последовательно и Вы, как пользователь, заранее уверены или можете предположить, что в некоторых ячейках обязательно будут ошибки (из-за того же деления на ноль), которые будут мешать обрабатывать результаты вычислений в целом по таблице. Приведу пример.
На рисунке ниже приведена абсолютно обычная табличка, в которой считается средняя цена одной единицы продукции на основе имеющихся данных о сумме выручки и количестве товара:
Цена за единицу в ячейке Е2 рассчитывается по простой формуле =ROUND(C2/D2;2) (функция ROUND округляет значение в ячейке до заданного пользователем числа знаков после десятичной запятой). Соответственно в ячейках Е3, Е4, Е5 и Е6 в формулах меняются ссылки на исходные данные построчно. Средняя цена (ячейка Е8) считается, как =AVERAGE (E2:E6). Всё хорошо, если все данные в таблице есть и они корректные (то есть число, а не текст, там, где должно быть число, и вообще в ячейках столбца «Количество» есть данные).
Что же будет, если данных не хватает:
Итак, мы видим ошибку типа «Деление на ноль», которая тянет за собой и ошибку в итоговой цифре «Средняя цена», ради которой всё и затевалось. Как вариант, при отсутствии данных, можно просто удалить строку с компанией «Абхазия-4». Однако, если она в дальнейшем опять понадобиться или данные по сумме от этой компании требуются где-то ещё в расчётах, то удалять строку нельзя. Вот тут и пригодится функция IFERROR:
Что мы сделали: в ячейках Е2…Е6, столбца «Цена за единицу», мы добавили в формулу расчета цены обработчик ошибок IFERROR. Получилась формула =IFERROR(ROUND(C2/D2;2);»нет данных») вот такая. В случае, если при вычислении получается ошибка, то функция отображает простой текст «нет данных», который, с одной стороны, является подсказкой для пользователя, что чего-то не хватает, а с другой стороны не мешает функции AVERAGE высчитывать среднее значение цены, потому что AVERAGE оперирует исключительно числами, а текстовые значения в расчёт не принимает. Поэтому в последнем примере средняя цена считается на основании данных от четырёх компаний, а не от пяти, и считается вполне корректно.
Обратите внимание, что функцию IFERROR можно было бы использовать и в ячейке, где считается средняя цена, то есть в Е8. Однако в этом случае её роль была бы исключительно уведомительной, в том плане, что вместо кода ошибки можно было бы указать пользователю, что он ввёл не все данные или ввёл их некорректно.
Функция IFERROR является одним из обработчиков внутренних ошибок электронных таблиц при расчётах в LibreOffice Calc. Что это значит? Это значит, что, если в ячейке в результате расчёта получается какая-либо внутренняя ошибка Calc (типа «Деление на ноль»), то функция IFERROR обработает такое событие и в ячейку запишет не код ошибки, который мешает производить дальнейшие действия с этой ячейкой, а заданное пользователем значение, будь то число или текст. Это очень удобно в том случае, если у Вас есть большая таблица, в которой исходные данные задаются последовательно и Вы, как пользователь, заранее уверены или можете предположить, что в некоторых ячейках обязательно будут ошибки (из-за того же деления на ноль), которые будут мешать обрабатывать результаты вычислений в целом по таблице. Приведу пример.
На рисунке ниже приведена абсолютно обычная табличка, в которой считается средняя цена одной единицы продукции на основе имеющихся данных о сумме выручки и количестве товара:
Цена за единицу в ячейке Е2 рассчитывается по простой формуле =ROUND(C2/D2;2) (функция ROUND округляет значение в ячейке до заданного пользователем числа знаков после десятичной запятой). Соответственно в ячейках Е3, Е4, Е5 и Е6 в формулах меняются ссылки на исходные данные построчно. Средняя цена (ячейка Е8) считается, как =AVERAGE (E2:E6). Всё хорошо, если все данные в таблице есть и они корректные (то есть число, а не текст, там, где должно быть число, и вообще в ячейках столбца «Количество» есть данные).
Что же будет, если данных не хватает:
Итак, мы видим ошибку типа «Деление на ноль», которая тянет за собой и ошибку в итоговой цифре «Средняя цена», ради которой всё и затевалось. Как вариант, при отсутствии данных, можно просто удалить строку с компанией «Абхазия-4». Однако, если она в дальнейшем опять понадобиться или данные по сумме от этой компании требуются где-то ещё в расчётах, то удалять строку нельзя. Вот тут и пригодится функция IFERROR:
Что мы сделали: в ячейках Е2…Е6, столбца «Цена за единицу», мы добавили в формулу расчета цены обработчик ошибок IFERROR. Получилась формула =IFERROR(ROUND(C2/D2;2);»нет данных») вот такая. В случае, если при вычислении получается ошибка, то функция отображает простой текст «нет данных», который, с одной стороны, является подсказкой для пользователя, что чего-то не хватает, а с другой стороны не мешает функции AVERAGE высчитывать среднее значение цены, потому что AVERAGE оперирует исключительно числами, а текстовые значения в расчёт не принимает. Поэтому в последнем примере средняя цена считается на основании данных от четырёх компаний, а не от пяти, и считается вполне корректно.
Обратите внимание, что функцию IFERROR можно было бы использовать и в ячейке, где считается средняя цена, то есть в Е8. Однако в этом случае её роль была бы исключительно уведомительной, в том плане, что вместо кода ошибки можно было бы указать пользователю, что он ввёл не все данные или ввёл их некорректно.
- Wiki Home
- Development
- Design
- QA
- Events
- Documentation
- Website
- Localization
- Accessibility
- Marketing
- Diversity
- Wiki Help
- Documentation Home
- Official Publications
- Other Resources
- FAQ
- HowTo
- Macros
- Docs Development
Function name:
IFERROR
Category:
Logical
Summary:
Evaluates one argument and if no error is found, the value of that argument is returned. If an error is found, then a second argument is evaluated, and its value is returned.
Syntax:
IFERROR(Value; Alternative Value)
Returns:
Returns a value whose type depends on the argument selected as the return value.
Arguments:
Value is an expression, or a reference to a cell containing an expression, that is evaluated and returned if no error is found.
Alternative Value is an expression, or a reference to a cell containing an expression, that is evaluated and returned only if an error was found during the evaluation of Value.
- The IFERROR function does not evaluate Otherwise Value if the evaluation of Then Value proceeds without an error. For example, the formula
=IFERROR(23; 1/0)
returns 23. While1/0
might be expected to generate a #DIV0! error, the division is never attempted in this case.
Additional details:
Details specific to IFERROR function
=IFERROR(X; Y)
is semantically equivalent to =IF(ISERROR(X); Y; X)
, except that the former case is more efficient because X is only computed once.
General information about Calc’s logical functions
Note: |
Calc uses the numbers 0 (FALSE) and 1 (TRUE) to represent logical values. For example, enter 1 in a cell that has the default general number format. Then select Format > Cells on the Menu bar to display the Format Cells dialog, select the Boolean Value option in the Category area of the Numbers tab, and click the OK button. Notice that the number 1 is now displayed as TRUE. To revert to displaying the number 1, repeat the process but select Number instead of Boolean Value.
To enter a logical value into a cell, simply type either TRUE or FALSE (case-insensitive) into the cell. Calc will recognize the logical value, display it in uppercase letters, and change the cell’s format to that appropriate to Boolean values.
Calc functions that produce a logical result return a number, either 0 or 1. In the case of a formula that simply calls such a logical function and is in a cell that has the default general number format, the cell is switched to the Boolean value format and the returned value is displayed as FALSE or TRUE. For example =TRUE()
returns the value 1, which is displayed as TRUE; if you then change the format to a numerical format, it is displayed as the number 1.
Calc functions that test for a logical result always evaluate the expression to be tested and check if it is equal to 0. The value 0 is taken as FALSE and any other value is taken as TRUE. For example, =NOT(0)
returns TRUE and =NOT(57.89)
returns FALSE.
In contrast to Calc, Microsoft Excel has a separate type for logical values — they are not numbers but are sometimes converted to numbers. Take care therefore if you need compatibility.
Examples:
Formula | Description | Returns |
---|---|---|
=IFERROR(2; 5) | Here the first argument contains no error and so the function returns 2. | 2 |
=IFERROR(SQRT(-2); 23) | Here the first argument contains an invalid argument error (Err:502) and so the function returns the value of the second argument. | 23 |
=IFERROR(ASIN(45); 3/0) | Here the first argument contains a #NUM! error and so the function returns the value of the second argument. However, the second argument contains a division by 0 error. | #DIV/0! |
=IFERROR(C8; C9) where cell C8 contains =1/0 and cell C9 contains the text «Error found». | Here the first argument contains a #DIV/0! error and so the function returns the value of the second argument. | «Error found» |
=IFERROR(C8; C9) where cell C8 contains =13 and cell C9 contains the text «Error found». | Here the first argument contains no error and so the function returns its value. | 13 |
AND
FALSE
IF
IFNA
IFS
ISERROR
NOT
OR
SWITCH
TRUE
XOR
ODF standard:
Section 6.15.5, part 2
Equivalent Excel functions:
IFERROR
С Хабра:
«Как известно, знание функции VLOOKUP в MS EXCEL, достаточно чтобы в Москве стать средним аналитиком. Если человек знаком еще и с PIVOT или например знает как убрать дубликаты из списка — все двери в счастливый офисный мир перед ним настежь раскрыты.»
Эта статья является продолжением статьи «Импорт таблицы с сайта». Для диплома мне нужно вычислить ряд показателей. Некоторые из них считаются простым сложением счетов из оборотной ведомости. Но тут две проблемы:
- Счетов очень много;
- Мне нужно проделать это для пяти банков и в динамике за три года, итого 15 раз.
Не буду приводить все свои расчеты, покажу основную суть на небольшом примере.
Постановка задачи
Для расчета мне нужны данные из оборотной ведомости по счетам бухгалтерского учета кредитной организации (пример). Из нее мне нужны только левый столбец с номерами счетов и крайний правый с итоговыми суммами.
Допустим, один из требуемых показателей рассчитывается как сумма счетов: 20210 + 20305 + 30210 + 30233. На деле формула может включать десятки счетов.
Таким образом, мне нужно найти номера этих счетов и узнать сумму на них, а дальше сложить их.
Подготовка данных
Процесс быстрого импорта веб-страницы в LibreOffice Calc описан в предыдущей статье. Для удобства я удалил лишние столбцы и оставил только два столбца — с номером счета и суммой на нём.
Поиск и возврат значения (VLOOKUP)
Итак, чтобы не искать вручную номера счетов и их значения, я воспользовался функцией VLOOKUP. Она выполняет поиск в вертикальном порядке со ссылкой на соседние ячейки справа. Эта функция проверяет, содержится ли определенное значение в первом столбце массива. Функция возвращает значение в той же строке в соседнем столбце. Функцию можно найти в Мастере функций, но я буду вводить её прямо в ячейке.
Синтаксис функции следующий:
=VLOOKUP(Критерий поиска; Массив; Индекс; Порядок сортировки)
Критерий поиска — значение (число, текст или логическое значение), которое надо найти в первом столбце.
Массив — это массив данных, который должен содержать как минимум 2 столбца.
Индекс — номер столбца в массиве, содержащего значения, которые должны быть возвращены. Первый столбец имеет номер 1.
Порядок сортировки — необязательный параметр, который указывает порядок сортировки. Может принимать значение 0 и 1.
В моем случае формула будет иметь следующий вид:
=VLOOKUP(E16;A16:B142;2;0)
В столбце E у меня указаны номера счетов, которые нужно просуммировать для нахождения требуемого показателя. Значения в нём являются критерием поиска. Сам поиск производится в массиве состоящим из столбца А и В. Но поиск идет в столбце А, в котором находятся номера счетов оборотной ведомости.
В качестве индекса у меня указано число 2, это значит, что значения будут браться из второго столбца массива, т.е. из столбца В.
Обработка ошибок (IFERROR)
На картинке видно, что часть значений не были найдены. Это нормальная ситуация, в таком случае такие счета пропускаются. Но у меня из-за этого не считается итоговая сумма.
Проблема решается обертыванием предыдущей формулы в функцию IFERROR, которая проверяет наличие ошибок. В случае их отсутствия она возвращает полученное значения, в противном случае — то значение, которое мы укажем.
=IFERROR(значение; другое значение)
Обертывание выглядит следующим образом:
=IFERROR(VLOOKUP(E16;A16:B142;2;0);0)
Т.е. в случае успеха IFERROR вернет значение, которое найдет VLOOKUP. В случае ошибки вместо #Н/Д будет подставлен 0.
Ссылки по теме
Рекомендую ознакомиться со следующими статьями:
- База Знаний Инфра-Ресурс: Функции Calc. VLOOKUP
- [Tips&Tricks] Фильтр значений
- [Tips&Tricks] Отбор уникальных (неповторяющихся) значений
P.S. В русскоязычном MO Excel эти функции называются ВПР() и ЕСЛИОШИБКА(), принцип действия полностью совпадает. В англоязычном варианте MO Excel функции имеют такие же названия VLOOKUP() и IFERROR().
Советы, трюки, хитрости, инструкции, руководства
Страницы
2 октября 2014 г.
LibreOffice Calc: Поиск и возврат значений (функции VLOOKUP и IFERROR)
С Хабра:
«Как известно, знание функции VLOOKUP в MS EXCEL, достаточно чтобы в Москве стать средним аналитиком. Если человек знаком еще и с PIVOT или например знает как убрать дубликаты из списка — все двери в счастливый офисный мир перед ним настежь раскрыты.»
Эта статья является продолжением статьи «Импорт таблицы с сайта». Для диплома мне нужно вычислить ряд показателей. Некоторые из них считаются простым сложением счетов из оборотной ведомости. Но тут две проблемы:
- Счетов очень много;
- Мне нужно проделать это для пяти банков и в динамике за три года, итого 15 раз.
Не буду приводить все свои расчеты, покажу основную суть на небольшом примере.
Постановка задачи
Для расчета мне нужны данные из оборотной ведомости по счетам бухгалтерского учета кредитной организации (пример). Из нее мне нужны только левый столбец с номерами счетов и крайний правый с итоговыми суммами.
Допустим, один из требуемых показателей рассчитывается как сумма счетов: 20210 + 20305 + 30210 + 30233. На деле формула может включать десятки счетов.
Таким образом, мне нужно найти номера этих счетов и узнать сумму на них, а дальше сложить их.
Подготовка данных
Поиск и возврат значения (VLOOKUP)
Итак, чтобы не искать вручную номера счетов и их значения, я воспользовался функцией VLOOKUP. Она выполняет поиск в вертикальном порядке со ссылкой на соседние ячейки справа. Эта функция проверяет, содержится ли определенное значение в первом столбце массива. Функция возвращает значение в той же строке в соседнем столбце. Функцию можно найти в Мастере функций, но я буду вводить её прямо в ячейке.
Синтаксис функции следующий:
=VLOOKUP(Критерий поиска; Массив; Индекс; Порядок сортировки)
Критерий поиска — значение (число, текст или логическое значение), которое надо найти в первом столбце.
Массив — это массив данных, который должен содержать как минимум 2 столбца.
Индекс — номер столбца в массиве, содержащего значения, которые должны быть возвращены. Первый столбец имеет номер 1.
Порядок сортировки — необязательный параметр, который указывает порядок сортировки. Может принимать значение 0 и 1.
В моем случае формула будет иметь следующий вид:
=VLOOKUP(E16;A16:B142;2;0)
В столбце E у меня указаны номера счетов, которые нужно просуммировать для нахождения требуемого показателя. Значения в нём являются критерием поиска. Сам поиск производится в массиве состоящим из столбца А и В. Но поиск идет в столбце А, в котором находятся номера счетов оборотной ведомости.
В качестве индекса у меня указано число 2, это значит, что значения будут браться из второго столбца массива, т.е. из столбца В.
Обработка ошибок (IFERROR)
Проблема решается обертыванием предыдущей формулы в функцию IFERROR, которая проверяет наличие ошибок. В случае их отсутствия она возвращает полученное значения, в противном случае — то значение, которое мы укажем.
=IFERROR(значение; другое значение)
Обертывание выглядит следующим образом:
=IFERROR(VLOOKUP(E16;A16:B142;2;0);0)
Т.е. в случае успеха IFERROR вернет значение, которое найдет VLOOKUP. В случае ошибки вместо #Н/Д будет подставлен 0.
Все секреты Excel-функции ВПР (VLOOKUP) для поиска данных в таблице и извлечения их в другую
Прочитав статью, вы не только узнаете, как найти данные в таблице Excel и извлечь их в другую, но и приёмы, которые можно применять вместе с функцией ВПР.
Батьянов Денис на правах гостевого автора рассказывает в этом посте о том, как найти данные в одной таблице Excel и извлечь их в другую, а также открывает все секреты функции вертикального просмотра.
При работе в Excel очень часто возникает потребность найти данные в одной таблице и извлечь их в другую. Если вы ещё не умеете это делать, то, прочитав статью, вы не только научитесь этому, но и узнаете, при каких условиях вы сможете выжать из системы максимум быстродействия. Рассмотрено большинство весьма эффективных приёмов, которые стоит применять совместно с функцией ВПР.
Даже если вы годами используете функцию ВПР, то с высокой долей вероятности эта статья будет вам полезна и не оставит равнодушным. Я, например, будучи IT-специалистом, а потом и руководителем в IT, пользовался VLOOKUP 15 лет, но разобраться со всеми нюансами довелось только сейчас, когда я на профессиональной основе стал обучать людей Excel.
ВПР — это аббревиатура от вертикального просмотра. Аналогично и VLOOKUP — Vertical LOOKUP. Уже само название функции намекает нам, что она производит поиск в строках таблицы (по вертикали — перебирая строки и фиксируя столбец), а не в столбцах (по горизонтали — перебирая столбцы и фиксируя строку). Надо заметить, что у ВПР есть сестра — гадкий утёнок, которая никогда не станет лебедем, — это функция ГПР (HLOOKUP). ГПР, в противоположность ВПР, производит горизонтальный поиск, однако концепция Excel (да и вообще концепция организации данных) подразумевает, что ваши таблицы имеют небольшое количество столбцов и гораздо большее количество строк. Именно поэтому поиск по строкам нам требуется во много раз чаще, чем по столбцам. Если вы в Excel слишком часто пользуетесь функцией ГПР, то, вполне вероятно, что вы чего-то не поняли в этой жизни.
Синтаксис
Функция ВПР имеет четыре параметра:
=ВПР( ; ; [; ] ), тут:
— искомое значение (редко) или ссылка на ячейку, содержащую искомое значение (подавляющее большинство случаев);
— ссылка на диапазон ячеек (двумерный массив), в ПЕРВОМ (!) столбце которого будет осуществляться поиск значения параметра ;
— номер столбца в диапазоне, из которого будет возвращено значение;
— это очень важный параметр, который отвечает на вопрос, а отсортирован ли по возрастанию первый столбец диапазона . В случае, если массив отсортирован, мы указываем значение ИСТИНА (TRUE) или 1, в противном случае — ЛОЖЬ (FALSE) или 0. В случае, если данный параметр опущен, он по умолчанию становится равным 1.
Держу пари, что многие из тех, кто знает функцию ВПР как облупленную, прочитав описание четвёртого параметра, могут почувствовать себя неуютно, так как они привыкли видеть его в несколько ином виде: обычно там идёт речь о точном соответствии при поиске (ЛОЖЬ или 0) либо же о диапазонном просмотре (ИСТИНА или 1).
Вот сейчас надо напрячься и читать следующий абзац несколько раз, пока не прочувствуете смысл сказанного до конца. Там важно каждое слово. Примеры помогут разобраться.
Как же конкретно работает формула ВПР
- Вид формулы I. Если последний параметр опущен или указан равным 1, то ВПР предполагает, что первый столбец отсортирован по возрастанию, поэтому поиск останавливается на той строке, которая непосредственно предшествует строке, в которой находится значение, превышающее искомое. Если такой строки не найдено, то возвращается последняя строка диапазона.
- Вид формулы II. Если последний параметр указан равным 0, то ВПР последовательно просматривает первый столбец массива и сразу останавливает поиск, когда найдено первое точное соответствие с параметром , в противном случае возвращается код ошибки #Н/Д (#N/A).
Схемы работы формул
ВПР тип I
ВПР тип II
Следствия для формул вида I
- Формулы можно использовать для распределения значений по диапазонам.
- Если первый столбец содержит повторяющиеся значения и правильно отсортирован, то будет возвращена последняя из строк с повторяющимися значениями.
- Если искать значение заведомо большее, чем может содержать первый столбец, то можно легко находить последнюю строку таблицы, что бывает довольно ценно.
- Данный вид вернёт ошибку #Н/Д, только если не найдёт значения меньше или равное искомому.
- Понять, что формула возвращает неправильные значения, в случае если ваш массив не отсортирован, довольно затруднительно.
Следствия для формул вида II
Если искомое значение встречается в первом столбце массива несколько раз, то формула выберет первую строку для последующего извлечения данных.
Производительность работы функции ВПР
Вы добрались до кульминационного места статьи. Казалось бы, ну какая разница, укажу ли я в качестве последнего параметра ноль или единицу? В основном все указывают, конечно же, ноль, так как это довольно практично: не надо заботиться о сортировке первого столбца массива, сразу видно, найдено значение или нет. Но если у вас на листе несколько тысяч формул ВПР (VLOOKUP), то вы заметите, что ВПР вида II работает медленно. При этом обычно все начинают думать:
- мне нужен более мощный компьютер;
- мне нужна более быстрая формула, например, многие знают про ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), которая якобы быстрее на жалкие 5–10%.
И мало кто думает, что стоит только начать использовать ВПР вида I и обеспечить любыми способами сортировку первого столбца, как скорость работы ВПР возрастёт в 57 раз. Пишу прописью — В ПЯТЬДЕСЯТ СЕМЬ РАЗ! Не на 57%, а на 5 700%. Данный факт я проверил вполне надёжно.
Секрет такой быстрой работы кроется в том, что на отсортированном массиве можно применять чрезвычайно эффективный алгоритм поиска, который носит название бинарного поиска (метод деления пополам, метод дихотомии). Так вот ВПР вида I его применяет, а ВПР вида II ищет без какой-либо оптимизации вообще. То же самое относится и к функции ПОИСКПОЗ (MATCH), которая включает в себя аналогичный параметр, а также и к функции ПРОСМОТР (LOOKUP), которая работает только на отсортированных массивах и включена в Excel ради совместимости с Lotus 1-2-3.
Недостатки формулы
Недостатки ВПР очевидны: во-первых, она ищет только в первом столбце указанного массива, а во-вторых, только справа от данного столбца. А как вы понимаете, вполне может случиться так, что столбец, содержащий необходимую информацию, окажется слева от столбца, в котором мы будем искать. Этого недостатка лишена уже упомянутая связка формул ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), что делает её наиболее гибким решением по извлечению данных из таблиц в сравнении с ВПР (VLOOKUP).
Некоторые аспекты применения формулы в реальной жизни
Диапазонный поиск
Классическая иллюстрация к диапазонному поиску — задача определения скидки по размеру заказа.
Поиск текстовых строк
Безусловно, ВПР ищет не только числа, но и текст. При этом надо принимать во внимание, что регистр символов формула не различает. Если использовать символы подстановки, то можно организовать нечёткий поиск. Есть два символа подстановки: «?» — заменяет один любой символ в текстовой строке, «*» — заменяет любое количество любых символов.
Борьба с пробелами
Часто поднимается вопрос, как решить проблему лишних пробелов при поиске. Если справочную таблицу ещё можно вычистить от них, то первый параметр формулы ВПР не всегда зависит от вас. Поэтому если риск засорения ячеек лишними пробелами присутствует, то можно применять для очистки функции СЖПРОБЕЛЫ (TRIM).
Разный формат данных
Если первый параметр функции ВПР ссылается на ячейку, которая содержит число, но которое хранится в ячейке в текстовом виде, а первый столбец массива содержит числа в правильном формате, то поиск будет неудачным. Возможна и обратная ситуация. Проблема легко решается переводом параметра 1 в необходимый формат:
=ВПР(−−D7; Продукты!$A$2:$C$5; 3; 0) — если D7 содержит текст, а таблица — числа;
=ВПР(D7 & «»); Продукты!$A$2:$C$5; 3; 0) — и наоборот.
Кстати, перевести текст в число можно сразу несколькими способами, выбирайте:
- Двойное отрицание —D7.
- Умножение на единицу D7*1.
- Сложение с нулём D7+0.
- Возведение в первую степень D7^1.
Перевод числа в текст производится через сцепку с пустой строкой, которая заставляет Excel преобразовать тип данных.
Как подавить выдачу #Н/Д
Это очень удобно делать при помощи функции ЕСЛИОШИБКА (IFERROR).
Например: =ЕСЛИОШИБКА( ВПР(D7; Продукты!$A$2:$C$5; 3; 0); «»).
Если ВПР вернёт код ошибки #Н/Д, то ЕСЛИОШИБКА его перехватит и подставит параметр 2 (в данном случае пустая строка), а если ошибки не произошло, то эта функция сделает вид, что её вообще нет, а есть только ВПР, вернувший нормальный результат.
Массив
Часто забывают ссылку массива сделать абсолютной, и при протягивании массив «плывёт». Помните, что вместо A2:C5 следует использовать $A$2:$C$5.
Хорошей идеей является размещение справочного массива на отдельном листе рабочей книги. Не путается под ногами, да и сохраннее будет.
Ещё более хорошей идеей будет объявление этого массива в виде именованного диапазона.
Многие пользователи при указании массива используют конструкцию вида A:C, указывая столбцы целиком. Этот подход имеет право на существование, так как вы избавлены от необходимости отслеживать тот факт, что ваш массив включает все необходимые строки. Если вы добавите строки на лист с первоначальным массивом, то диапазон, указанный как A:C, не придётся корректировать. Безусловно, эта синтаксическая конструкция заставляет Excel проводить несколько большую работу, чем при точном указании диапазона, но данными накладными расходами можно пренебречь. Речь идёт о сотых долях секунды.
Ну и на грани гениальности — оформить массив в виде умной таблицы.
Использование функции СТОЛБЕЦ для указания колонки извлечения
Если таблица, в которую вы извлекаете данные при помощи ВПР, имеет ту же самую структуру, что и справочная таблица, но просто содержит меньшее количество строк, то в ВПР можно использовать функцию СТОЛБЕЦ() для автоматического расчёта номеров извлекаемых столбцов. При этом все ВПР-формулы будут одинаковыми (с поправкой на первый параметр, который меняется автоматически)! Обратите внимание, что у первого параметра координата столбца абсолютная.
Создание составного ключа через &»|»&
Если возникает необходимость искать по нескольким столбцам одновременно, то необходимо делать составной ключ для поиска. Если бы возвращаемое значение было не текстовым (как тут в случае с полем «Код»), а числовым, то для этого подошла бы более удобная формула СУММЕСЛИМН (SUMIFS) и составной ключ столбца не потребовался бы вовсе.
Это моя первая статья для Лайфхакера. Если вам понравилось, то приглашаю вас посетить мой сайт, а также с удовольствием прочту в комментариях о ваших секретах использования функции ВПР и ей подобных. Спасибо. 🙂
Блог про LibreOffice
Советы, трюки, хитрости, инструкции, руководства
Страницы
2 октября 2014 г.
LibreOffice Calc: Поиск и возврат значений (функции VLOOKUP и IFERROR)
С Хабра:
«Как известно, знание функции VLOOKUP в MS EXCEL, достаточно чтобы в Москве стать средним аналитиком. Если человек знаком еще и с PIVOT или например знает как убрать дубликаты из списка — все двери в счастливый офисный мир перед ним настежь раскрыты.»
Эта статья является продолжением статьи «Импорт таблицы с сайта». Для диплома мне нужно вычислить ряд показателей. Некоторые из них считаются простым сложением счетов из оборотной ведомости. Но тут две проблемы:
- Счетов очень много;
- Мне нужно проделать это для пяти банков и в динамике за три года, итого 15 раз.
Не буду приводить все свои расчеты, покажу основную суть на небольшом примере.
Постановка задачи
Для расчета мне нужны данные из оборотной ведомости по счетам бухгалтерского учета кредитной организации (пример). Из нее мне нужны только левый столбец с номерами счетов и крайний правый с итоговыми суммами.
Допустим, один из требуемых показателей рассчитывается как сумма счетов: 20210 + 20305 + 30210 + 30233. На деле формула может включать десятки счетов.
Таким образом, мне нужно найти номера этих счетов и узнать сумму на них, а дальше сложить их.
Подготовка данных
Поиск и возврат значения (VLOOKUP)
Итак, чтобы не искать вручную номера счетов и их значения, я воспользовался функцией VLOOKUP. Она выполняет поиск в вертикальном порядке со ссылкой на соседние ячейки справа. Эта функция проверяет, содержится ли определенное значение в первом столбце массива. Функция возвращает значение в той же строке в соседнем столбце. Функцию можно найти в Мастере функций, но я буду вводить её прямо в ячейке.
Синтаксис функции следующий:
=VLOOKUP(Критерий поиска; Массив; Индекс; Порядок сортировки)
Критерий поиска — значение (число, текст или логическое значение), которое надо найти в первом столбце.
Массив — это массив данных, который должен содержать как минимум 2 столбца.
Индекс — номер столбца в массиве, содержащего значения, которые должны быть возвращены. Первый столбец имеет номер 1.
Порядок сортировки — необязательный параметр, который указывает порядок сортировки. Может принимать значение 0 и 1.
В моем случае формула будет иметь следующий вид:
=VLOOKUP(E16;A16:B142;2;0)
В столбце E у меня указаны номера счетов, которые нужно просуммировать для нахождения требуемого показателя. Значения в нём являются критерием поиска. Сам поиск производится в массиве состоящим из столбца А и В. Но поиск идет в столбце А, в котором находятся номера счетов оборотной ведомости.
В качестве индекса у меня указано число 2, это значит, что значения будут браться из второго столбца массива, т.е. из столбца В.
Обработка ошибок (IFERROR)
Проблема решается обертыванием предыдущей формулы в функцию IFERROR, которая проверяет наличие ошибок. В случае их отсутствия она возвращает полученное значения, в противном случае — то значение, которое мы укажем.
=IFERROR(значение; другое значение)
Обертывание выглядит следующим образом:
=IFERROR(VLOOKUP(E16;A16:B142;2;0);0)
Т.е. в случае успеха IFERROR вернет значение, которое найдет VLOOKUP. В случае ошибки вместо #Н/Д будет подставлен 0.
ВПР (VLOOKUP)
Производит поиск по первому столбцу диапазона и возвращает значение из найденной ячейки.
Примеры использования
ВПР(10003; A2:B26; 2; ЛОЖЬ)
Синтаксис
ВПР(запрос; диапазон; индекс; [отсортировано])
запрос – критерий, по которому выполняется поиск ( например, 42 , » кошка» или I24 ).
диапазон – диапазон, в первом столбце которого будет производиться поиск по запросу .
индекс – номер столбца (от начала диапазона ), из которого нужно взять искомое значение.
- Если индекс не попадает в интервал от 1 до числа столбцов в диапазоне , возвращается ошибка #ЗНАЧЕН! .
отсортировано – по умолчанию [ ИСТИНА ]. Указывает, отсортированы ли данные в столбце, в котором производится поиск (первом столбце из указанного диапазона). Как правило, рекомендуемое значение – ЛОЖЬ.
Если для параметра отсортировано указать значение ЛОЖЬ (рекомендуется), возвращается только точное совпадение. Если таких совпадений несколько, возвращается значение для первого из них. Если точных совпадений нет, возвращается ошибка #Н/Д .
Если для параметра отсортировано не выбрано значение или выбрано ИСТИНА , возвращается значение, ближайшее к запрошенному (меньшее либо равное). Если все значения в столбце поиска больше указанного, возвращается ошибка #Н/Д .
Примечания
Если для параметра отсортировано не выбрано значение или выбрано ИСТИНА , а первый столбец диапазона не отсортирован, функция может вернуть неверное значение. Если результаты ВПР вызывают сомнение, убедитесь, что для последнего параметра указано значение ЛОЖЬ. Такая конфигурация подходит для большинства случаев. Если же данные в столбце отсортированы и вы хотите оптимизировать поиск, укажите значение ИСТИНА.
При поиске чисел или дат убедитесь, что первый столбец в диапазоне не отсортирован по текстовым значениям. К примеру, правильно отсортированные числа должны располагаться в порядке (1; 2; 10; 100). Если их отсортировать как текст, порядок будет иным: (1; 10; 100; 2). При неверном типе сортировки функция может вернуть неправильное значение.
Запросы на основе регулярных выражений НЕ поддерживаются. В этих случаях нужно использовать функцию QUERY .
ВПР работает быстрее, если данные в диапазоне отсортированы и для параметра отсортировано указано значение ИСТИНА .
Также для поиска можно использовать шаблоны с подстановочными знаками. Знаки «?» и «*» подставляются в запрос . При этом знак вопроса обозначает один символ, а звездочка – набор символов. Если вы хотите найти вопросительный знак или звездочку в тексте, введите перед искомым символом тильду (
), чтобы указать, что это не подстановочный знак. А если нужно найти тильду, введите ещё одну.
Похожие функции
QUERY : Выполняет запросы на базе языка запросов API визуализации Google.
ГПР : Производит поиск по первой строке диапазона и возвращает значение из найденной ячейки.
Примеры
ВПР ищет в первом столбце номер студента и возвращает соответствующую оценку.
ВПР ищет в первом столбце приблизительное значение дохода (параметр отсортировано имеет значение ИСТИНА ) и возвращает соответствующую ему ставку налога.
Если по запросу найдено несколько равных значений, ВПР возвращает первое из них.
ВПР (функция ВПР)
Совет: Попробуйте использовать новую функцию кслукуп — улучшенную версию функции ВПР, которая работает в любом направлении и возвращает точные совпадения по умолчанию, упрощая и удобную в использовании, чем его предшественник.
ФУНКЦИЯ ВПР используется, если нужно найти элементы в таблице или диапазоне по строкам. Например, можно найти цену на автомобильную часть по номеру детали или получить имя сотрудника на основе его кода сотрудника.
Совет: Чтобы получить дополнительную справку о функции ВПР, просмотрите эти видео с YouTube от экспертов сообщества Excel!
Самая простая функция ВПР означает следующее:
= ВПР (необходимые условия для поиска, номер столбца в диапазоне, содержащий возвращаемое значение, возвращаемое приближенное или точное соответствие — обозначено как 1/истина или 0/ложь).
Совет: Секрет функции ВПР состоит в организации данных таким образом, чтобы искомое значение (Фрукт) отображалось слева от возвращаемого значения, которое нужно найти (Количество).
Используйте функцию ВПР для поиска значения в таблице.
ВПР(искомое_значение, таблица, номер_столбца, [интервальный_просмотр])
= ВПР (A2; A10: C20; 2; ИСТИНА)
= ВПР (a2; сведения о клиенте)! А:Ф, 3, ЛОЖЬ)
Значение для поиска. Значение, которое вы хотите найти, должно находиться в первом столбце диапазона ячеек, указанного в аргументе table_array .
Например, если Таблица-массив охватывает ячейки B2: D7, то lookup_value должен находиться в столбце B.
Искомое_значение может являться значением или ссылкой на ячейку.
Диапазон ячеек, в котором будет выполнен поиск искомого_значения и возвращаемого значения с помощью функции ВПР. Вы можете использовать именованный диапазон или таблицу, а вместо ссылок на ячейки можно использовать имена в аргументе.
Первый столбец в диапазоне ячеек должен содержать lookup_value. Диапазон ячеек также должен содержать возвращаемое значение, которое нужно найти.
Номер столбца (начиная с 1 для самого левого столбца table_array), содержащего возвращаемое значение.
Логическое значение, определяющее, какое совпадение должна найти функция ВПР, — приблизительное или точное.
Приближенное соответствие: 1/истина предполагает, что первый столбец в таблице отсортирован либо в числовом формате, либо в алфавитном порядке, а затем будет искать ближайшее значение. Это способ по умолчанию, если не указан другой. Например, = ВПР (90; a1: B100; 2; истина).
Точное совпадение: 0/ложь осуществляет поиск точного значения в первом столбце. Например, = ВПР («Смит»; a1: B100; 2; ложь).
Начало работы
Для построения синтаксиса функции ВПР вам потребуется следующая информация:
Значение, которое вам нужно найти, то есть искомое значение.
Диапазон, в котором находится искомое значение. Помните, что для правильной работы функции ВПР искомое значение всегда должно находиться в первом столбце диапазона. Например, если искомое значение находится в ячейке C2, диапазон должен начинаться с C.
Номер столбца в диапазоне, содержащий возвращаемое значение. Например, если в качестве диапазона задано значение B2: D11, число B должно быть первым столбцом, а в качестве второго — «C» и т. д.
При желании вы можете указать слово ИСТИНА, если вам достаточно приблизительного совпадения, или слово ЛОЖЬ, если вам требуется точное совпадение возвращаемого значения. Если вы ничего не указываете, по умолчанию всегда подразумевается вариант ИСТИНА, то есть приблизительное совпадение.
Теперь объедините все перечисленное выше аргументы следующим образом:
= ВПР (искомое значение; диапазон с искомым значением; номер столбца в диапазоне с возвращаемым значением, приближенное соответствие (истина) или точное совпадение (ложь)).
Примеры
Вот несколько примеров использования функции ВПР.
Пример 1
Пример 2
Пример 3
Пример 4
Пример 5
Вы можете использовать функцию ВПР для объединения нескольких таблиц в одну, если одна из них имеет общие поля. Это может быть особенно удобно, если вам нужно предоставить доступ к книге пользователям более ранних версий Excel, которые не поддерживают функции работы с данными с несколькими таблицами в качестве источников данных — путем объединения источников в одну таблицу и изменения источника данных компонента данных на новый. Таблица, функция данных может использоваться в более ранних версиях Excel (при условии, что сама функция данных поддерживается в более ранней версии).
Здесь в столбцах A-F и H есть значения или формулы, которые используют только значения на листе, а остальные столбцы используют функцию ВПР и значения столбца A (клиентский код) и столбец B (юрист) для получения данных из других таблиц.
Скопируйте таблицу с общими полями на новый лист и присвойте ей имя.
Чтобы открыть диалоговое окно Управление связями, нажмите кнопку данные > работа с данными > связей .
Для каждой из перечисленных связей обратите внимание на следующее:
Поле, связывающее таблицы (в диалоговом окне отображаются в круглых скобках). Это lookup_value формулы функции ВПР.
Имя связанной таблицы подстановки. Это table_array формулы функции ВПР.
Поле (столбец) в связанной таблице подстановки с данными, которые вы хотите добавить в новый столбец. Эти сведения не отображаются в диалоговом окне Управление связями. чтобы узнать, какое поле вы хотите извлечь, вам потребуется ознакомиться со связанной таблицей подстановки. Вы хотите отметить номер столбца (A = 1) – это col_index_num в формуле.
Чтобы добавить поле в новую таблицу, введите формулу ВПР в первом пустом столбце с помощью сведений, собранных в действии 3.
В нашем примере столбец G использует юрист ( lookup_value) для получения данных о тарифных курсах из четвертого столбца (col_index_num = 4) из таблицы судебные тблатторнэйс ( table_array) с формулой = ВПР ([@Attorney], tbl_Attorneys, 4, ложь).
В формуле также могут использоваться ссылки на ячейки и ссылки на диапазоны. В нашем примере это было бы = ВПР (a2; «Юристы»! А:Д, 4, ложь).
Продолжайте добавлять поля, пока не будут созданы все нужные поля. Если вы пытаетесь подготовить книгу с функциями данных, которые используют несколько таблиц, измените источник данных функции данных в новой таблице.
Ошибка 522 libreoffice
Меню сайта
9.1. Основные положения. Коды ошибок
Подробности Категория: 9. Функции в LibreOffice.Calc Опубликовано 27.08.2011 12:21 Автор: Шитов В.Н. Просмотров: 4045
Многие функции программы LibreOffice . org Calc аналогичны функциям в программе Microsoft Excel . Если это так, то мы указывали имя функции в программе Microsoft Excel . Если функция аналогична, то синтаксис функций в LibreOffice . org Calc и Microsoft Excel полностью совпадает, что облегчает изучение функций и не вызывает стрессов при переходе из одной программы в другую. Тем не менее, несмотря на то, что некоторые функции должны быть совместимы (хотя бы по синтаксису), но на практике совместимы не всегда. Вот для этих случаев синтаксис функций в Microsoft Excel и может пригодиться.
Функции, имена которых заканчиваются на _ADD, возвращают те же результаты, что и соответствующие функции Microsoft Excel , то есть по стандартам США. Функции без _ADD служат для получения результатов, основанных на международных стандартах, в том числе и для России. Поэтому функции с _ADD мы, как правило, даже не рассматривали, так как для России это совершенно бесполезно. Например, функция WEEKNUM позволяет рассчитать порядковый номер недели для определенной даты на основе международного стандарта ISO 6801 (неделя начинается в понедельник), в то время как функция WEEKNUM_ADD возвращает такой же номер недели, как и Microsoft Excel (неделя начинается в воскресенье).
В следующей таблице описываются коды ошибок для LibreOffice.org Calc. Если ошибка происходит в ячейке, которая содержит курсор, сообщение об ошибке отображается в строке состояния:
Формула содержит недопустимый символ, например «=1Eq» вместо «=1E2».
Функция имеет недопустимый аргумент, например отрицательное число для функции извлечения корня.
Недопустимая операция с плавающей запятой
Деление на 0 или другое вычисление, приводящее к переполнению определенного диапазона значений.
Ошибка в списке параметров
Недопустимый параметр функции, например текст вместо числа или доменная ссылка вместо ссылки на ячейку.
Ошибка: нет пары
Отсутствует скобка: например, есть закрывающие скобки, но нет открывающих скобок.
Отсутствует оператор: например, в выражении «=2(3+4) * » нет оператора между символами «2» и «(«.
Нет переменной, например, в случае, когда два оператора стоят рядом «=1+*2».
Функция требует большего количества переменных, например AND() и OR().
Слишком длинная формула
Компилятор: общее число внутренних маркеров (то есть операторов, переменных, скобок) в формуле превышает 512. Интерпретатор: общее число матриц, которые создает формула, превышает 150. Сюда относятся и основные функции, которые получают слишком большой массив в качестве параметра (максимум 0xFFFE, то есть 65534 байта).
Слишком длинная строка
Компилятор: идентификатор в формуле превышает 64 KБ. Интерпретатор: результат строковой операции превышает 64 KБ.
Операция сортировки, предпринятая на слишком большом количестве числовых данных (максимально 100000), или переполнение стека вычислений.
Внутренняя синтаксическая ошибка
В стеке вычислений предполагается матрица, но она недоступна.
Внутренняя синтаксическая ошибка
Неизвестный код: например, документ с новой функцией загружен в старую версию, не содержащую этой функции.
Внутренняя синтаксическая ошибка
Нет результата (в ячейке отображается #ЗНАЧЕН! а не Ошибка:519)
Формула вычисляет значение, не соответствующее определению, или ячейка, на которую есть ссылка в формуле, содержит текст вместо числа.
Внутренняя синтаксическая ошибка
Компилятор создал неизвестный код компиляции.
Внутренняя синтаксическая ошибка
Формула ссылается прямо или косвенно на саму себя, а параметр Итерации не установлен в команде «Сервис → Параметры → LibreOffice.org Calc → Вычисления».
Процедура вычисления не сходится
Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов.
Недопустимые ссылки (вместо Ошибка:524 в ячейке содержится #ССЫЛ!)
Компилятор: невозможно разрешить имя описания столбца или строки. Интерпретатор: в формуле отсутствует столбец, строка или лист, в которых содержится указанная ячейка.
Недопустимые имена (вместо Ошибка:525 ячейка содержит #ИМЯ?)
Идентификатор не может быть оценен (например, нет допустимой ссылки, нет допустимого доменного имени, нет подписи столбца/строки, нет макроса, неправильный десятичный разделитель, не найдена надстройка).
Внутренняя синтаксическая ошибка
Устарела, уже не используется, но может возникнуть из старых документов, если результатом является формула из домена.
Интерпретатор: слишком сложное вложение ссылок, например когда ячейка ссылается на ячейку.
В функциях LibreOffice.org Calc необязательные параметры можно оставлять пустыми только в том случае, если за ними не следуют другие параметры. Например, если у функции четыре параметра и два последних параметра являются необязательными, то можно оставить пустыми параметры 3 и 4 или параметр 4. Оставить пустым параметр 3 нельзя.
Материалы с этого сайта разрешается использовать в личных некоммерческих целей. Запрещается размещать материалы на других сайтах без разрешения правообладателя.
All Rights Reserved © 2020
Шаблоны Joomla
Ошибка 522 libreoffice
##### — эти символы сообщают, что столбец, содержащий числа, недостаточно широк, или же дата и время, введенные в ячейки данного столбца, содержат отрицательные числа. В первом случае достаточно просто увеличить ширину столбца или изменить числовой формат данных (например, уменьшить число знаков после запятой). Во втором же случае надо:
• проверить формулу, если вычисляется число дней между двумя датами;
• если формула не содержит ошибок, необходимо изменить формат ячейки и перейти, например, с формата Дата и время на Общий или Числовой формат.
Ошибка: 501 — недопустимый символ. Формула содержит недопустимый символ, например =1Eр вместо =1E2.
Ошибка: 502 — недопустимый аргумент. Функция имеет недопустимый аргумент, например отрицательное число для функции извлечения корня.
Ошибка: 503 (#NUM! ) — недопустимая операция с плавающей запятой. Вычисление приводит к переполнению диапазона значений.
Ошибка: 504 — ошибка в списке параметров. Используется недопустимый параметр функции, например текст вместо числа или гиперссылка вместо ссылки на ячейку.
Ошибка: 508 — нет пары.
Отсутствует скобка (закрывающая или открывающая).
Ошибка: 509 — отсутствует оператор. В формуле отсутствует оператор (+, – и т. д.).
Ошибка: 510 — отсутствует переменная.
Отсутствует переменная (два оператора стоят рядом).
Ошибка: 511 — отсутствует переменная. В функции не хватает переменной.
Ошибка: 512 — слишком длинная формула.
Общее число внутренних маркеров (операторов, переменных, скобок) в формуле превышает 512 или общее число матриц, которые создает формула, превышает 150.
Ошибка: 513 — слишком длинная строка. Идентификатор в формуле превышает 64 Kб.
Ошибка: 514 — внутреннее переполнение.
Переполнен стек вычислений (например, операция сортировки предпринята на слишком большом количестве числовых данных — более 100 000).
Ошибка: 516 — внутренняя синтаксическая ошибка. В стеке вычислений недоступна необходимая матрица.
Ошибка: 517 — внутренняя синтаксическая ошибка. Документ с новой функцией открыт в старой версии программы.
Ошибка: 518 — внутренняя синтаксическая ошибка. Переменная недоступна.
Ошибка: 519 (#VALUE) — нет результата. Ячейка, на которую ссылается формула, содержит текст вместо числа. -В ячейке отображается #ЗНАЧЕН! , а не Ошибка: 519.
Ошибка: 520 — внутренняя синтаксическая ошибка. Компилятор создал неизвестный код компиляции.
Ошибка: 521 — внутренняя синтаксическая ошибка. Нет результата.
Ошибка: 522 — циклическая ссылка. Формула ссылается прямо или косвенно на саму себя, а параметр Итерации не настроен.
Ошибка: 523 — процедура вычисления не сходится. Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов.
Ошибка: 524 (#REF) — недопустимые ссылки. В формуле отсутствует столбец, строка или лист с заданной ячейкой.
-В ячейке отображается #ССЫЛ!2, а не Ошибка: 524.
Ошибка: 525 (#NAME) — недопустимые имена. Нет допустимой ссылки, доменного имени, подписи столбца/строки, макроса, присутствует неправильный десятичный разделитель или не найдена надстройка.
-В ячейке отображается #ИМЯ, а не Ошибка: 525.
Ошибка: 526 — внутренняя синтаксическая ошибка. Ссылка устарела.
Ошибка: 527 — внутреннее переполнение. Слишком сложное вложение ссылок.
Ошибка: 532 (#DIV/0!) — деление на ноль. В формуле используется деление на ноль. Глава 8
Коды ошибок в LibreOffice Calc
В следующей таблице описываются коды ошибок для LibreOffice Calc. Если ошибка происходит в ячейке, содержащей курсор, сообщение об ошибке отображается в строке состояния.
Авторские права |
---|
Код ошибки | Сообщение | Объяснение |
---|---|---|
### | Ширины ячейки не хватает для отображения содержимого. | |
501 | Недопустимый символ | Символ в формуле недействителен. |
502 | Недопустимый аргумент | Функция имеет недопустимый аргумент, например отрицательное число для функции извлечения корня. |
503
|
Недопустимая операция с плавающей запятой | Вычисление приводит к переполнению определенного диапазона значений. |
504 | Ошибка в списке параметров | Недопустимый параметр функции, например текст вместо числа или доменная ссылка вместо ссылки на ячейку. |
508 | Ошибка: нет пары | Отсутствует скобка: например, есть закрывающие скобки, но нет открывающих скобок. |
509 | Отсутствует оператор | Отсутствует оператор: например, в выражении «=2(3+4) * » нет оператора между символами «2» и «(«. |
510 | Отсутствует переменная | Нет переменной, например, в случае, когда два оператора стоят рядом «=1+*2». |
511 | Отсутствует переменная | Функция требует большего количества переменных, например AND() и OR(). |
512 | Слишком длинная формула | Компилятор: общее количество внутренних лексем (т.е. операторов, переменных и угловых скобок) в формуле превышает 512. |
513 | Слишком длинная строка | Компилятор: идентификатор в формуле по размеру превышает 64 КБ. Интерпретатор: результат строковой операции по размеру превышает 64 КБ. |
514 | Внутреннее переполнение | Операция сортировки, предпринятая на слишком большом количестве числовых данных (максимально 100000), или переполнение стека вычислений. |
516 | Внутренняя ошибка синтаксиса | В стеке вычислений предполагается матрица, но она недоступна. |
517 | Внутренняя синтаксическая ошибка | Неизвестный код: например, документ с новой функцией загружен в старую версию, не содержащую этой функции. |
518 | Внутренняя синтаксическая ошибка | Переменная недоступна. |
519
|
Нет результата (в ячейке отображается #ЗНАЧЕН! а не Ошибка:519) | Формула возвращает значение, не соответствующее определению, или ячейка, на которую ссылается формула, содержит текст вместо числа. |
520 | Внутренняя синтаксическая ошибка | Компилятор создал неизвестный код компиляции. |
521 | Внутренняя синтаксическая ошибка | Нет результата. |
522 | Циклическая ссылка | Формула прямым или косвенным образом ссылается на себя, и не настроен параметр Циклы в разделе Сервис — Параметры — LibreOffice Calc — Вычислить. |
523 | Процедура вычисления не сходится | Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов. |
524
недопустимые ссылки (вместо Ошибка:524 в ячейке содержится #ССЫЛ!) |
Компилятор: не удалось определить имя описания столбца или строки. Интерпретатор: в формуле отсутствует столбец, строка или лист, содержащий ссылочную ячейку. | |
525
недопустимые имена (вместо Ошибка:525 ячейка содержит #ИМЯ?) Оценка статьи: Загрузка… Похожие публикации Adblock |
Содержание
- xlsxwriter и LibreOffice не показывает результат формулы
- 1 ответов
- Коды ошибок в LibreOffice Calc
- Libreoffice Writer пропадают формулы
- Лучи гнева.
- LibreOffice: страшный сон бухгалтера
- Введение
- Изменения с последней проверки в 2015 году
- Не дай себя обмануть
- Как не надо использовать массивы и векторы
- Как дважды ошибиться в макросах
- Опечаточки и copy-paste
- Странные циклы
- Странные условия
xlsxwriter и LibreOffice не показывает результат формулы
Я пытаюсь создать файл Excel с простой формулой:
созданный файл отлично работает в Excel, но при открытии в LibreOffice Calc формула не оценивается. Мне нужно повторно ввести числовые значения, и тогда это сработает.
что я делаю не так?
1 ответов
XlsxWriter не вычисляет результат формулы и вместо этого сохраняет значение 0 в качестве результата формулы. Затем он устанавливает глобальный флаг в файле XLSX сказать, что все формулы и функции должны быть пересчитаны при открытии файла. Это метод, рекомендованный в документации Excel, и в целом он отлично работает с приложениями электронных таблиц. Однако приложения, которые не имеют возможности для расчета формулы, такие как Excel Viewer или некоторые мобильные приложения будут отображать только 0 результатов.
Что касается того, почему пересчет не происходит автоматически, из ask.libreoffice.org ответ:
LibreOffice намеренно не пересчитывает старые электронные таблицы, потому что, поскольку формулы обновляются от версии к версии или между различными программами электронных таблиц, результаты могут быть разными. Перейти к инструментам-параметры-LibreOffice Calc, в разделе «пересчет при загрузке файла» измените два раскрывающихся списка: «Excel 2007 и новее» и «электронная таблица ODF (не сохраненная LibreOffice)» на «всегда пересчитывать». Нажмите кнопку ОК, закройте электронную таблицу и LibreOffice. Теперь откройте файл в LibreOffice, и вы увидите, что Формулы пересчитаны.
также перейдите в меню Сервис-содержимое ячейки и убедитесь, что Автокалькуляция выбранный.
Я подтвердил, что настройка «всегда пересчитывать «или» приглашение » работала для мне. Кроме того, вы всегда можете нажать control-shift-F9.
Источник
Коды ошибок в LibreOffice Calc
В следующей таблице описываются коды ошибок для LibreOffice Calc. Если ошибка происходит в ячейке, содержащей курсор, сообщение об ошибке отображается в строке состояния .
Ширины ячейки не хватает для отображения содержимого.
Символ в формуле недействителен.
Недопустимый аргумент функции. Например, отрицательное число в функции SQRT() (в этом случае следует использовать IMSQRT()).
Недопустимая операция с плавающей запятой
Вычисление приводит к переполнению определенного диапазона значений.
Ошибка в списке параметров
Недопустимый параметр функции, например, текст вместо числа или доменная ссылка вместо ссылки на ячейку.
Ошибка: нет пары
Отсутствует скобка: например, есть закрывающие скобки, но нет открывающих скобок.
Отсутствует оператор: например, в выражении «=2(3+4) * » нет оператора между символами «2» и «(«.
Нет переменной, например, в случае, когда два оператора стоят рядом «=1+*2».
Функция требует большего количества переменных, например, AND() и OR().
Слишком длинная формула
Компилятор: общее количество внутренних токенов (то есть операторов, переменных, скобок) в формуле превышает 8192.
Слишком длинная строка
Компилятор: идентификатор в формуле по размеру превышает 64 КБ. Интерпретатор: результат строковой операции по размеру превышает 64 КБ.
Операция сортировки, предпринятая на слишком большом количестве числовых данных (максимально 100000), или переполнение стека вычислений.
Внутренняя ошибка синтаксиса
В стеке вычислений предполагается матрица, но она недоступна.
Внутренняя ошибка синтаксиса
Неизвестный код: например, документ с новой функцией загружен в старую версию, не содержащую этой функции.
Внутренняя ошибка синтаксиса
Нет результата (в ячейке отображается #ЗНАЧЕН!, а не Ошибка:519)
Формула возвращает значение, не соответствующее определению, или ячейка, на которую ссылается формула, содержит текст вместо числа.
Внутренняя ошибка синтаксиса
Компилятор создал неизвестный код компиляции.
Внутренняя ошибка синтаксиса
Формула прямым или косвенным образом ссылается на себя, и не настроен параметр Циклы в разделе LibreOffice — Параметры Сервис — Параметры — LibreOffice Calc — Вычислить.
Процедура вычисления не сходится
Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов.
недопустимые ссылки (вместо Ошибка:524 в ячейке содержится #ССЫЛ!)
Компилятор: не удалось определить имя описания столбца или строки. Интерпретатор: в формуле отсутствует столбец, строка или лист, содержащий ссылочную ячейку.
недопустимые имена (вместо Ошибка:525 ячейка содержит #ИМЯ?)
Идентификатор не может быть оценен (например, нет допустимой ссылки, нет допустимого доменного имени, нет подписи столбца/строки, нет макроса, неправильный десятичный разделитель, не найдена надстройка).
Внутренняя ошибка синтаксиса
Устарела, уже не используется, но может возникнуть из старых документов, если результатом является формула из домена.
Интерпретатор: ссылки (например, ссылка ячейки на ячейку) чрезмерно инкапсулированы.
Деление на ноль
Оператор деления/если знаменатель равен 0.
Эта ошибка возвращается некоторыми функциями, например:
VARP с менее чем 1 аргументом
STDEVP с менее чем 1 аргументом
ВАР с менее чем 2 аргументами
STDEV с менее чем 2 аргументами
STANDARDIZE с stdev=0
NORMDIST с stdev=0
Вложенные массивы не поддерживаются
Ошибка: Размер массива или матрицы
Неподдерживаемое содержимое встроенного массива
Внешнее содержимое отключено
Происходит, если встречается функция, требующая (повторной) загрузки внешних источников, а пользователь еще не подтвердил перезагрузку внешних источников.
Источник
Libreoffice Writer пропадают формулы
Иногда вставленная формула пропадает, а вместо нее остается просто прямоугольник. В этом году мне что-то с электроникой не везет. Доверять ответственную работу технике нельзя.
Ну и ССЗБ, что латехом не пользуешься!
напишите: номер версии libreoffice и последовательность действий, при которой наблюдается данная ошибка.
4.3.4.1 Какая последовательность? Просто пропадают неожиданно и все.
А почему в либре формулы работают чирижопу?
4.3.4.1 Какая последовательность? Просто пропадают неожиданно и все.
4.3.3.2. все работает. последовательность нужна для написания отчета об ошибке авторам, без неё ты просто пришел поныть.
Потому что либре- и прочие говноохфисы — порнография для абсолютных неосиляторов. А им пофиг, как формула выглядит: они все равно не понимают, что эта формула значит!
последовательность нужна для написания отчета об ошибке авторам
Вот тебе последовательность воспроизведения другой ошибки:
- открой LibreOffice Calc;
- выбери ячейку, контекстное меню, «формат ячейки»;
- во вкладке «обрамление» добавь сплошные границы дефолтной линией;
- во вкладке «выравнивание» поставь угол поворота текста 1 градус;
- примени изменения, нажав OK;
- наблюдай графические искажения.
Багу уже года полтора, наверное, если не больше. Описан, не исправлен.
Тут только ныть и остаётся, всё равно остальное не действует.
а в чем бага? в «выравнивании» есть Reference edge, поставь третий пункт. или я тебя не понял?
а в чем бага? в «выравнивании» есть Reference edge, поставь третий пункт. или я тебя не понял?
Да, третий пункт «чинит». Но это засовывание головы в песок. Ни при каких настройках выравнивания текста ободок не должен так выпирать, это баг.
Вот, кстати, ссылка: https://www.libreoffice.org/bugzilla/show_bug.cgi?id=35510 . Ему уже три с половиной года, оказывается.
а как оно должно выглядеть для первых двух пунктов? на что надо это исправить?
а как оно должно выглядеть для первых двух пунктов? на что надо это исправить?
Когда я поворачиваю текст на один градус, я ожидаю, что он повернётся на один градус, но при этом останется внутри ячейки. И ожидаю, что на границы ячейки поворот никак не будет влиять. Сейчас же текст и границы выбрасывает далеко в сторону.
В багзилле (ссылка была в сообщении выше) есть два вложения-скриншота, «как выглядит» и «как ожидается».
Доверять ответственную работу технике нельзя.
А людям — и подавно. И вообще, 4.3.4.* ещё нестабильна, о чём плач-то? Кстати, как обстоит дело с аппаратным ускорением графики?
Лучи гнева.
Потребовалось набить определённое не самое малое количество формул. И тут эта свистопляска. Самое интересное, что картинка объекта сохраняется, но если попытаться её отредактировать, то в формуле пусто. При сохранении в формат docx вместо формул пусто.
Обновляю версию из debian experimental до 4.4.2-rc2, надеюсь поможет.
P.S. грош цена переведённым комментариям исходного кода с немецкого на английский язык, если на ровном месте пропадают данные.
Я не знаю, как там в Дебиане, но в Убунте сборка жутко падучая и какая-то кривая. Правда, формулы у меня не пропадали. Но иногда они рендерятся крайне странно.
Но, конечно, когда возникает такой баг с формулами, лучше всего сделать копию документа и посмотреть, что там происходит в оригинальном XML.
Обновляю версию из debian experimental до 4.4.2-rc2, надеюсь поможет.
Не помогает, увы.
Если с тебя требуют doc, пиши сразу в MSOffice. Если не требуют, пиши в latex.
Спасибо, буду иметь в виду, но вывод очевиден. Пока лучше обходить либру стороной.
Если с тебя требуют doc, пиши сразу в MSOffice.
Нюанс, что требуют docx, но docx с формулами, собственно, в либре набираю исключительно формулы, сохраняю в docx, дальше судьба документа меня не интересует — не мой фронт работы.
При сохранении в формат docx вместо формул пусто.
Это, как раз, возможно. По форматам полной совместимости никто не обещал.
Это, как раз, возможно. По форматам полной совместимости никто не обещал.
Нет, нет. Тут не в конвертере дело. Пропадают формулы, у которых
картинка объекта сохраняется, но если попытаться её отредактировать, то в формуле пусто.
Единственное, что радует. Пропадают, кажется, только новые формулы, старые не исчезают.
Как оказалось, по крайней мере в AOO, при такой последовательности действий по умолчанию (растяжение текста относительно нижней части канта) поворачивается не только текст, но и скашиваются боковые грани обрамления, что наглядно видно, если поставить угол поворота, например, 30 градусов. Поэтому сам текст на самом деле остаётся внутри обрамлённой области, отрисовка которой вываливается за пределы «ячейки». Похоже, что это фича такая. Поэтому при малом угле наклона «ромб» обрамления сильно вытягивает. Остаётся непонятным, с чего это вдруг боковые грани обрамления вообще меняют угол при повороте текста?
Это точно. Ло вообще непредсказуем своим поведением.
Ну надо же, почти два года прошло с того сообщения, я и забыть успел. А в свежем (5.2.3.1) LibreOffice всё ещё воспроизводится.
Ага. Не помню, было ли это тогда, но сейчас при выборе угла есть ещё выбор привязки. Можно выбрать привязку к нижней кромке, верней кромке и к середине. По умолчанию выбрана привязка к нижней кромке, что и приводит к такому выбросу. Если поменять на привязку к центру, поведение становится ожидаемым.
Непонятно, зачем только по умолчанию стоит привязка к кромке.
В libreoffice 5.2.3.3 формулы пропадают. Причем все симптомы те же, что описал человек, создавший тему. Последовательность действий установить не удается.
Источник
LibreOffice: страшный сон бухгалтера
LibreOffice — мощный офисный пакет, который бесплатен для частного, образовательного и коммерческого использования. Его разработчики делают замечательный продукт, который во многих сферах используется в качестве альтернативы Microsoft Office. Команде PVS-Studio всегда интересно взглянуть на код таких известных проектов и попробовать найти в них ошибки. В этот раз сделать это было легко. Проект содержит много ошибок, которые могут привести к серьёзным проблемам. В статье будут рассмотрены некоторые интересные дефекты, найденные в коде.
Введение
LibreOffice — очень крупный C++ проект. Поддерживать проект такого объёма — сложная задача для команды разработчиков. И, к сожалению, складывается впечатление, что качеству кода LibreOffice не удаётся уделять достаточного внимания.
С одной стороны, проект просто огромный, не каждый инструмент статического или динамического анализа осилит анализ 13к файлов исходного кода. Столько файлов участвует в сборке офисного пакета вместе со сторонними библиотеками. В основном репозитории LibreOffice хранится около 8к файлов исходного кода. Такой объём кода создаёт проблемы не только разработчикам:
С другой стороны, у проекта много пользователей и требуется найти и исправить как можно больше ошибок. Каждая ошибка может причинять боль сотням и тысячам пользователей. Поэтому большой размер кодовой базы не должен становиться поводом отказаться от использования тех или иных инструментов, способных обнаружить ошибки. Думаю, читатель уже догадался, что речь идёт о статических анализаторах кода :).
Да, использование статических анализаторов не гарантирует отсутствия ошибок в проекте. Однако такие инструменты, как PVS-Studio, способны найти большое количество ошибок ещё на этапе разработки и тем самым уменьшить объём работ, связанных с отладкой и поддержкой проекта.
Давайте посмотрим, что можно найти интересного в исходных кодах LibreOffice, если взять статический анализатор кода PVS-Studio. Возможности запуска анализатора обширны: Windows, Linux, macOS. Для написания этого обзора использовался отчёт PVS-Studio, созданный при анализе проекта на Windows.
Изменения с последней проверки в 2015 году
В марте 2015 года был выполнен первый анализ LibreOffice («Проверка проекта LibreOffice») с помощью PVS-Studio. С тех пор офисный пакет сильно развился как продукт, но внутри всё также содержит множество ошибок. А некоторые паттерны ошибок вообще не поменялись с тех пор. Вот, например, ошибка из первой статьи:
V656 Variables ‘aVRP’, ‘aVPN’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘rSceneCamera.GetVRP()’ expression. Check lines: 177, 178. viewcontactofe3dscene.cxx 178
Эта ошибка исправлена, но вот что нашлось в самой последней версии кода:
V656 Variables ‘aSdvURL’, ‘aStrURL’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘pThm->GetSdvURL()’ expression. Check lines: 658, 659. gallery1.cxx 659
Как вы могли заметить, едва различимые составные имена функций до сих пор являются источником ошибок.
Ещё один интересный пример из старого кода:
V656 Variables ‘nDragW’, ‘nDragH’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘rMSettings.GetStartDragWidth()’ expression. Check lines: 471, 472. winproc.cxx 472
Этот фрагмент кода действительно содержал ошибку, которая сейчас исправлена. Но ошибок в коде меньше не становится… Сейчас выявлена похожая ситуация:
V656 Variables ‘defaultZoomX’, ‘defaultZoomY’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘pViewData->GetZoomX()’ expression. Check lines: 5673, 5674. gridwin.cxx 5674
Ошибки вносятся в код буквально по аналогии.
Не дай себя обмануть
V765 A compound assignment expression ‘x -= x — . ‘ is suspicious. Consider inspecting it for a possible error. swdtflvr.cxx 3509
Вот такой вот интересный «Hack» был найден с помощью диагностики V765. Если упростить строку кода с комментарием, то можно получить неожиданный результат:
И в чём тогда заключается Hack?
Ещё один пример на эту тему:
V567 The modification of the ‘nCount’ variable is unsequenced relative to another operation on the same variable. This may lead to undefined behavior. stgio.cxx 214
Выполнение кода в таких ситуациях может зависеть от компилятора и стандарта языка. Почему бы не переписать этот фрагмент кода проще, понятнее и надёжнее?
Как не надо использовать массивы и векторы
По какой-то причине кто-то понаделал множество однотипных ошибок при работе с массивами и векторами. Давайте разберём эти примеры.
V557 Array overrun is possible. The ‘nPageNum’ index is pointing beyond array bound. pptx-epptooxml.cxx 1168
Последним валидным индексом должно являться значение, равное size() — 1. Но в этом фрагменте кода допустили ситуацию, когда индекс nPageNum может иметь значение mpSlidesFSArray.size(), из-за чего происходит выход за пределы массива и работа с элементом, состоящим из «мусора».
V557 Array overrun is possible. The ‘mnSelectedMenu’ index is pointing beyond array bound. checklistmenu.cxx 826
Интересно, что в этом фрагменте кода написали проверку индекса более понятно, но при этом допустили такую же ошибку.
V557 Array overrun is possible. The ‘nXFIndex’ index is pointing beyond array bound. xestyle.cxx 2613
А эта ошибка вдвойне интереснее! В отладочном макросе написали правильную проверку индекса, а в другом месте снова сделали ошибку, допустив выход за пределы массива.
Теперь рассмотрим ошибку иного рода, не связанную с индексами.
V554 Incorrect use of shared_ptr. The memory allocated with ‘new []’ will be cleaned using ‘delete’. dx_vcltools.cxx 158
Этот фрагмент кода содержит ошибку, приводящую к неопределённому поведению программы. Дело в том, что память выделяется и освобождается разными способами. Для правильного освобождения памяти необходимо было объявить поле класса таким образом:
Как дважды ошибиться в макросах
V568 It’s odd that the argument of sizeof() operator is the ‘bTextFrame? aProps: aShapeProps’ expression. wpscontext.cxx 134
К сожалению для многих разработчиков, аргументы макросов ведут себя не как аргументы функций. Игнорирование этого факта часто приводит к ошибкам. В случаях #1 и #2 используется почти одинаковая конструкция с использованием тернарного оператора. Но в первом случае — макрос, во втором — функция. Однако это только вершина проблемы.
В случае #1 анализатор на самом деле обнаружил следующий код с ошибкой:
Это наш цикл с макросом SAL_N_ELEMENTS. Оператор sizeof не вычисляет выражение в тернарном операторе. В данном случае выполняется арифметика с размером указателей, результатом которой являются значения, далёкие от реального размера указанных массивов. На вычисление неправильных значений дополнительно влияет и разрядность приложения.
Но потом оказалось, что существует 2 макроса SAL_N_ELEMENTS! Т.е. препроцессор раскрыл не тот макрос, как же это могло произойти? Нам поможет определение макроса и комментарии разработчиков:
Другая версия макроса содержит безопасную шаблонную функцию, но что-то пошло не так:
- Безопасный макрос не включился в код;
- Другим макросом всё равно невозможно пользоваться, т.к. успешное инстанцирование шаблонной функции выполняется только если в тернарный оператор передать массивы одинакового размера. А в этом случае использование такого макроса теряет смысл.
Опечаточки и copy-paste
V1013 Suspicious subexpression f1.Pitch == f2.CharSet in a sequence of similar comparisons. xmldlg_export.cxx 1251
Ошибка является достойным кандидатом для пополнения статьи «Зло живёт в функциях сравнения», если мы когда-нибудь решим её обновить или расширить. Думаю, вероятность найти такую ошибку (пропуск f2.Pitch) самостоятельно крайне мала. А вы как считаете?
V501 There are identical sub-expressions ‘mpTable[ocArrayColSep] != mpTable[eOp]’ to the left and to the right of the ‘&&’ operator. formulacompiler.cxx 632
Результатом бездумного копирования стал такой фрагмент кода. Возможно, условное выражение просто продублировано лишний раз, но всё равно в коде не место таким неоднозначностям.
V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 781, 783. mysqlc_databasemetadata.cxx 781
В результате копирования условных выражений, в коде была допущена ошибка, из-за которой значение 8 для переменной nColumnSize никогда не выставляется.
V523 The ‘then’ statement is equivalent to the ‘else’ statement. svdpdf.hxx 146
Тут перепутали функции min() и max(). Наверняка из-за этой опечатки в интерфейсе что-то странно масштабируется.
Странные циклы
V533 It is likely that a wrong variable is being incremented inside the ‘for’ operator. Consider reviewing ‘i’. javatypemaker.cxx 602
Выражение ++i в цикле выглядит очень подозрительно. Возможно, там должно быть ++j.
V756 The ‘nIndex2’ counter is not used inside a nested loop. Consider inspecting usage of ‘nIndex’ counter. treex.cxx 34
Есть какая-то ошибка во внутреннем цикле for. Т.к. переменная nIndex не изменяется, происходит перезаписывание одних и тех же двух элементов массива на каждой итерации. Скорее всего, везде вместо nIndex должна была использоваться переменная nIndex2.
V1008 Consider inspecting the ‘for’ operator. No more than one iteration of the loop will be performed. diagramhelper.cxx 292
Цикл for намеренно ограничивается до 1 итерации. Непонятно, зачем это сделано именно таким способом.
V612 An unconditional ‘return’ within a loop. pormulti.cxx 891
Пример более простого странного цикла из одной итерации, который лучше переписать на условный оператор.
Ещё несколько таких мест:
- V612 An unconditional ‘return’ within a loop. txtfrm.cxx 144
- V612 An unconditional ‘return’ within a loop. txtfrm.cxx 202
- V612 An unconditional ‘return’ within a loop. txtfrm.cxx 279
Странные условия
V637 Two opposite conditions were encountered. The second condition is always false. Check lines: 281, 285. authfld.cxx 281
Анализатор обнаружил противоречивые сравнения. Что-то с этим фрагментом кода явно не так.
Такой же код замечен и в этом месте:
- V637 Two opposite conditions were encountered. The second condition is always false. Check lines: 1827, 1829. doctxm.cxx 1827
V590 Consider inspecting this expression. The expression is excessive or contains a misprint. fileurl.cxx 55
Проблема приведённого фрагмента кода заключается в том, что первое условное выражение не влияет на результат всего выражения.
По мотивам подобных ошибок я даже написал теоретическую статью: «Логические выражения в C/C++. Как ошибаются профессионалы».
V590 Consider inspecting this expression. The expression is excessive or contains a misprint. unoobj.cxx 1895
Сразу не понять, в чём проблема данного условия, поэтому из препроцессированного файла был выписан развёрнутый фрагмент кода:
Получилось так, что ни одно число не входит одновременно в 4 диапазона, заданных в условии числами. Разработчики допустили ошибку.
Источник
Содержание
- Коды ошибок в LibreOffice Calc
- «Общая ошибка. Общая ошибка ввода / вывода «при открытии документов в Libreoffice
- 3 ответа
- Как исправить ошибку ввода вывода с диска в Windows
- Суть проблемы
- Что представляет собой ошибка ввода вывода с устройства?
- 1. Кабели
- 2. «USB-порт»
- 3. Драйвера
- 4. Приложение «Chkdsk»
- 5. Используйте программу «Speccy» для проверки работоспособности диска
- Больше нет ошибок ввода вывода с устройства!
Коды ошибок в LibreOffice Calc
В следующей таблице описываются коды ошибок для LibreOffice Calc. Если ошибка происходит в ячейке, содержащей курсор, сообщение об ошибке отображается в строке состояния .
Ширины ячейки не хватает для отображения содержимого.
Символ в формуле недействителен.
Недопустимый аргумент функции. Например, отрицательное число в функции SQRT() (в этом случае следует использовать IMSQRT()).
Недопустимая операция с плавающей запятой
Вычисление приводит к переполнению определенного диапазона значений.
Ошибка в списке параметров
Недопустимый параметр функции, например, текст вместо числа или доменная ссылка вместо ссылки на ячейку.
Ошибка: нет пары
Отсутствует скобка: например, есть закрывающие скобки, но нет открывающих скобок.
Отсутствует оператор: например, в выражении «=2(3+4) * » нет оператора между символами «2» и «(«.
Нет переменной, например, в случае, когда два оператора стоят рядом «=1+*2».
Функция требует большего количества переменных, например, AND() и OR().
Слишком длинная формула
Компилятор: общее количество внутренних токенов (то есть операторов, переменных, скобок) в формуле превышает 8192.
Слишком длинная строка
Компилятор: идентификатор в формуле по размеру превышает 64 КБ. Интерпретатор: результат строковой операции по размеру превышает 64 КБ.
Операция сортировки, предпринятая на слишком большом количестве числовых данных (максимально 100000), или переполнение стека вычислений.
Внутренняя ошибка синтаксиса
В стеке вычислений предполагается матрица, но она недоступна.
Внутренняя ошибка синтаксиса
Неизвестный код: например, документ с новой функцией загружен в старую версию, не содержащую этой функции.
Внутренняя ошибка синтаксиса
Нет результата (в ячейке отображается #ЗНАЧЕН!, а не Ошибка:519)
Формула возвращает значение, не соответствующее определению, или ячейка, на которую ссылается формула, содержит текст вместо числа.
Внутренняя ошибка синтаксиса
Компилятор создал неизвестный код компиляции.
Внутренняя ошибка синтаксиса
Формула прямым или косвенным образом ссылается на себя, и не настроен параметр Циклы в разделе LibreOffice — Параметры Сервис — Параметры — LibreOffice Calc — Вычислить.
Процедура вычисления не сходится
Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов.
недопустимые ссылки (вместо Ошибка:524 в ячейке содержится #ССЫЛ!)
Компилятор: не удалось определить имя описания столбца или строки. Интерпретатор: в формуле отсутствует столбец, строка или лист, содержащий ссылочную ячейку.
недопустимые имена (вместо Ошибка:525 ячейка содержит #ИМЯ?)
Идентификатор не может быть оценен (например, нет допустимой ссылки, нет допустимого доменного имени, нет подписи столбца/строки, нет макроса, неправильный десятичный разделитель, не найдена надстройка).
Внутренняя ошибка синтаксиса
Устарела, уже не используется, но может возникнуть из старых документов, если результатом является формула из домена.
Интерпретатор: ссылки (например, ссылка ячейки на ячейку) чрезмерно инкапсулированы.
Деление на ноль
Оператор деления/если знаменатель равен 0.
Эта ошибка возвращается некоторыми функциями, например:
VARP с менее чем 1 аргументом
STDEVP с менее чем 1 аргументом
ВАР с менее чем 2 аргументами
STDEV с менее чем 2 аргументами
STANDARDIZE с stdev=0
NORMDIST с stdev=0
Вложенные массивы не поддерживаются
Ошибка: Размер массива или матрицы
Неподдерживаемое содержимое встроенного массива
Внешнее содержимое отключено
Происходит, если встречается функция, требующая (повторной) загрузки внешних источников, а пользователь еще не подтвердил перезагрузку внешних источников.
«Общая ошибка. Общая ошибка ввода / вывода «при открытии документов в Libreoffice
Я запускаю LibreOffice 4.2.5.2 на Ubuntu 14.04. Попытка открыть любой документ (сначала только с большими, но теперь все они) возвращает одно из следующих сообщений:
Общая ошибка. Общие входные / выходные ошибки открытия документов с Libreoffice
Заблокировано для редактирования Неизвестным пользователем
Файл поврежден, должен ли LibreOffice восстановить его?
LibreOffice 4.1.6, который появился с обновлением дистрибутива, имел ту же ошибку. Удаление файлов блокировки (которые я пробовал) не исправляет.
Отправка «поврежденных» файлов на мой адрес электронной почты, я могу без проблем просматривать их содержимое. Я использую LibreOffice только для Linux.
3 ответа
Это исправило ошибку «Общая ошибка. Общая ошибка ввода / вывода» для меня после обновления с Ubuntu 12.04 LTS до 16.04 LTS:
Похоже, что только несколько пакетов LibreOffice были установлены в системе после обновления. Вышеупомянутая команда установила еще несколько пакетов.
Я только что получил это сообщение об ошибке, после некоторого копания я обнаружил, что мой раздел /tmp заполнен. Я освободил место в /tmp и смог открыть мою электронную таблицу.
Примечание. . Это будет применимо только в том случае, если вы используете раздел /tmp — если вы этого не сделаете, это может быть вызвано заполнением вашего корневого раздела, но я предполагаю, что у вас будет другой если это так.
Я думаю, что после всего этого времени вы либо отказались, либо нашли другое решение, но вот некоторые материалы для других, у кого может быть такая же проблема.
Я также получил сообщение об ошибке «Общая ошибка. Общая ошибка ввода / вывода» и нашел решение на другом форуме:
Очистить содержимое этих двух файлов:
Один простой способ выполнить эти команды в терминале:
.. или вы можете перейти к файлам с помощью Nautilus, открыть их в редакторе, удалить контент и сохранить. Ваш выбор:)
После этого LibreOffice открыл мой файл, как будто ничего не произошло.
Я считаю, что если это не сработает, это также возможность просто удалить всю папку
/ .config / libreoffice /, так как я думаю, что она будет воссоздана, но я не тестировал это. Сначала сделайте копию, если вы хотите попробовать.
Как исправить ошибку ввода вывода с диска в Windows
Пять способов исправления ошибки ввода/вывода c устройства . Как исправить ошибку самому, используя встроенные в Windows инструменты или сторонние приложения. Операционная система «Windows» является наиболее популярной и, вероятно, самой распространенной системой для управления компьютерными устройствами в мире. Разработанная корпорацией «Microsoft» , она включает в себя самые последние инновационные наработки в области компьютерных технологий и лучшие решения, взятые от старых версий программы. Универсальность системы и богатый внутренний функционал операционной системы «Windows» делает ее незаменимой на различных устройствах: стационарных персональных компьютерах, ноутбуках, планшетах, коммуникаторах и т.д.
Суть проблемы
Благодаря повсеместному использованию и широкому диапазону возможностей, компьютерные устройства на базе операционной системы «Windows» применяются во всех сферах нашей жизни: управление производственными процессами, обслуживание офисов, решение консультационных и финансово-экономических задач, участие в научном и образовательном процессе, создании средств коммуникации, широчайший выбор игровых платформ и развлечений и т.д.
В домашних условиях для каждого конкретного пользователя персональные компьютеры и другие устройства решают не менее важные задачи: создание и обработка важных документов, хранение личной регистрационной информации, получение и отправка электронной почты, редактирование и форматирование фото и видео файлов, социальное общение, формирование досуга и многое другое.
Одним из основных элементов, отвечающих за обработку и хранение информации пользователя отвечают внутренние хранилища данных: твердотельные накопители «SSD» и жесткие диски «HDD» . Они обладают необычайно высокой скоростью обработки информации и имеют значительный внутренний объем дискового пространства для хранения любого массива данных.
Однако, количество хранимой информации, находящейся у пользователя, с каждым годом, неуклонно растет. И как следствие, емкости внутренних дисковых хранилищ бывает часто недостаточно. Если определенные файлы используются довольно редко (например, личные фото и видео альбомы), а также резервные копии данных или конфиденциальные файлы пользователя – то оптимальным средством для их хранения являются внешние подключаемые диски.
Соединяясь с персональным компьютером при помощи кабеля, они предоставляют доступ ко всей информации пользователя в любой момент. Однако не находятся в постоянном контакте с компьютером и хранятся отдельно. Такой способ хранения данных позволяет быть уверенным в их сохранности, в случае выхода из строя основного жесткого диска компьютера. Ввиду постоянной эксплуатации внутренних дисков вероятность их выхода из строя гораздо выше, чем у внешних накопителей. А также во внутреннем хранилище компьютера освобождается свободное место, используемое пользователем для решения своих актуальных задач.
Однако, ситуация, связанная с использованием внешних накопителей, может помимо всех своих положительных качеств иметь и отрицательные. Как и любые другие устройства, внешние накопители подвержены сбоям или поломкам. Ответьте для себя на несколько простых вопросов. Как часто вы подключаете свои внешние накопители к компьютеру? Раз в месяц или один раз в год? Как часто вы проверяете работоспособность вашего диска и возможность доступа к хранимой на нем информации?
Довольно распространена ситуация, когда, решив подключить свой диск к персональному компьютеру или ноутбуку, пользователь не смог получить к нему доступ. И в результате, операционная система выдает сообщение об ошибке ввода вывода с устройства.
В таком случае, ситуация кажется критической, особенно если на внешнем накопителе хранятся важные личные данные или резервная копия системы. Но не спешите паниковать, ведь неприятную ситуацию еще можно исправить. Мы покажем вам пять способов, как исправить ошибку ввода вывода с устройства, не теряя при этом никаких файлов.
Что представляет собой ошибка ввода вывода с устройства?
Ошибки ввода вывода с устройства довольно распространены. Чаше всего мы связываем их с проблемами аппаратного обеспечения, такими как неправильный кабель, сбой с запоминающим устройством или неверно сконфигурированный драйвер. Исходя из вышесказанного, существует несколько различных способов для исправления ошибки ввода вывода с устройства. Устранение большинства указанных проблем не займет у вас много времени и их достаточно легко осуществить.
Прежде чем начать исправление ошибки ввода вывода с устройства, выполните перезагрузку операционной системы, а затем повторите попытку. Зачастую, такого действия бывает вполне достаточно для устранения возникшей ошибки. Но если ошибка не исчезла, то приступайте к выполнению нижеописанных способов. После каждого действия проверяйте, исправлена ли проблема возникновения ошибки. Если нет, то переходите к следующему способу.
1. Кабели
Вам нужно выполнить полную проверку, выявляя и проверяя уязвимые места, которые могут послужить причиной возникновения ошибки ввода вывода.
Первое действие, которое нужно сделать – просто отрегулировать кабели подключения. Проверьте кабель и механизмы крепления на наличие повреждений, разломов, сколов или загрязнений. Отключите, а затем заново подключите кабель, соединяющий внешний накопитель с компьютером. Выполните такую проверку на обоих его концах, а затем повторите попытку доступа к диску.
Если кабель после повторного подключения не работает, то используйте другой «USB-кабель» и повторите попытку. Если вы не уверены в работоспособности кабеля, соедините его с другим внешним устройством (в работоспособности которого вы полностью уверены) и подключите его к вашей системе. Если он работает, то вы знаете, что кабель не испорчен, и возможно у вас другая причина возникновения ошибки.
2. «USB-порт»
Если первоначальная проверка показала, что причина возникновения ошибки находится не в кабеле, то попробуйте использовать альтернативный порт для подключения накопителя. Большинство современных систем имеют несколько «USB-портов» , так как многие внешние подключаемые устройства используют «USB-соединение» . Кроме того, проверьте, насколько чистые ваши «USB-порты» . Если они пыльные или сильно загрязнены, то необходимо их полностью очистить, стараясь не повредить контакты, а затем повторите попытку.
3. Драйвера
Еще одно базовое, но забытое исправление ошибки ввода вывода с устройства – это обновление драйверов в вашей системе. Операционная система «Windows 10» должна автоматически обновлять все ваши драйвера. Вопрос о постоянных обновлениях был очень болезненным моментом для многих пользователей, когда корпорация «Microsoft» выпустила операционную систему «Windows 10» . Теоретически, система, постоянно обновляющая драйвера, не имеет изъянов. И у вас никогда не должно возникать проблема с драйверами в «Windows 10» .
Но на практике ситуация немного иная. «Windows» не всегда поддерживает версии драйверов в актуальном рабочем состоянии, а иногда постоянная система обновления драйверов просто не работает. В таком случае, вам может помочь программы сторонних производителей, осуществляющие мониторинг системы на наличие устаревших драйверов. Перейдите на сайт любого разработчика, загрузите и установите программу (в некоторых случаях потребуется ваше разрешение для антивирусной системы безопасности компьютера), а затем выполните сканирование системы на наличие устаревших драйверов.
Не удивляйтесь, если по результатам сканирования вы обнаружите большое количество устаревших версий. Во многих случаях соответствующие приложения и службы все еще работают нормально. Просто программа сканирования уведомляет вас, что производитель выпустил более новую версию драйвера и она доступна для скачивания и установки. Найдите драйвер для вашего устройства и обновите его, а затем повторите попытку использования внешнего накопителя.
4. Приложение «Chkdsk»
Хотя ошибки ввода вывода с устройства, в основном, связаны с повреждением оборудования, мы можем попытаться использовать интегрированное системное приложение для устранения проблемы. Приложение «chkdsk» проверяет файловую систему на наличие ошибок и исправляет их.
Для запуска процесса проверки и исправления ошибок необходимо открыть приложение «Командная строка (администратор)» . В операционной системе «Windows 10» представлено много различных способов для запуска командной строки с правами администратора. Мы покажем вам только несколько способов, и вы решите какой из них вам наиболее подходит для дальнейшего применения.
1 способ : Нажмите кнопку «Пуск» в нижнем левом углу рабочего стола и откройте главное пользовательское меню «Windows» . Используя полосу прокрутки, опустите бегунок вниз и выберите раздел «Служебные – Windows» . Раскройте вложенное меню и найдите раздел «Командная строка» . Щелкните по нему правой кнопкой мыши и откройте всплывающее меню. Выберите раздел «Дополнительно» и вызовите вложенное меню, в котором нажмите раздел «Запуск от имени администратора» .
2 способ : Откройте приложение «Поиск» , нажав на соответствующую кнопку, расположенную рядом с кнопкой «Пуск» в нижнем левом углу экрана. Введите в поле поиска запрос «командная» или «cmd» . В разделе «Лучшее соответствие» найдите искомое приложение и нажмите на нем правой кнопкой мыши. В открывшемся всплывающем меню выберите раздел «Запуск от имени администратора» .
3 способ : Откройте проводник файлов «Windows» , дважды щелкнув ярлык «Этот компьютер» , расположенный на рабочем столе, и перейдите по следующему адресу: «C:WindowsSystem32» . Найдите в списке вложенных файлов исполняемый файл «cmd.exe» , щелкните по нему правой кнопкой мыши, и во всплывающем меню выберите раздел «Запуск от имени администратора» .
Затем в приложении «Администратор: Командная строка» введите следующую команду: «chkdsk /f /r /x [буква вашего диска]» , и нажмите клавишу «Ввод» на клавиатуре. Укажите ту букву названия диска, которая присвоена вашему накопителю (в нашем примере указана буква диска «D:» ).
Процесс сканирования может занять некоторое время, особенно если приложение обнаружит сектора, требующие ремонта.
По завершению, приложение представит отчет о выполненных действиях и перечислит любые ремонтные работы, которые были произведены для исправления обнаруженных неполадок накопителя.
5. Используйте программу «Speccy» для проверки работоспособности диска
Если вышеперечисленные исправления не помогли, то вы можете проверить общее состояние жесткого диска, используя бесплатную программу стороннего издателя «Speccy» . Загрузите и установите «Speccy» , выполнив предварительный поиск сайта разработчика в Интернете. В окне программы в левой панели выберите раздел «Хранение данных» . В правой панели окна вы увидите развернутый список доступных устройств хранения, прокрутите страницу вниз и найдите соответствующий диск. Они обычно имеют полную маркировку.
Под техническими характеристиками привода находится раскрывающейся список таблицы атрибутов «S.M.A.R.T.» . На эту таблицу вам и нужно обратить особое внимание.
«S.M.A.R.T.» в переводе с английского означает технология самоконтроля, анализа и отчётности, использующая встроенную систему мониторинга и предоставляющая пользователю полную оценку состояния здоровья жёсткого диска. На представленном выше изображении вы можете увидеть, что программа «Speccy» присваивает каждому показателю мониторинга определенный рейтинг. Вас, в первую очередь, должны заинтересовать следующие показатели:
- 05: Переназначенные сектора;
- 0A: Попытки раскрутки;
- C4: Операции переназначения;
- C5: Нестабильные сектора;
- C6: Неисправимые сектора.
Поразительный факт : Исследование «Google» показало, что в течение первых шестидесяти дней после возникновения первой непоправимой ошибки, вероятность выхода из строя диска в тридцать девять раз больше, чем для аналогичного диска без ошибок.
Справедливости ради следует отметить, что исследование «Google» также делает вывод о том, что рейтинги надежности диска «S.M.A.R.T.» имеют ограниченную пользу при прогнозировании надвигающихся сбоев в работе накопителя, но могут представить хорошую общую характеристику состояния диска. Имейте это в виду, если какой-либо из вышеперечисленных атрибутов показывает ошибки (или несколько ошибок для нескольких атрибутов), то это серьезный повод задуматься о переносе всех данных на другой носитель и замене накопителя.
Использование программы «Speccy» не обязательно устранит ошибку ввода вывода с устройства. Но поможет отобразить общую картину работоспособности диска.
Для сравнения, вы можете воспользоваться другими программами сторонних производителей, широко представленных в сети Интернет.
Больше нет ошибок ввода вывода с устройства!
Мы надеемся, что после всех выполненных действий ваша ошибка ввода вывода с устройства была устранена, и вы получили доступ к своему накопителю. Возникновение такой ошибки не всегда означает приближающийся конец для вашего диска. Но это, однако, хороший индикатор того, что с диском, возможно, что-то происходит. Поэтому, не стоит выяснять, является ли эта ошибка началом более серьезных проблем.
А необходимо сосредоточится на том, чтобы создать резервные копии файлов на другом диске и задуматься о приобретении нового жесткого диска.
Появлялись ли у вас ошибки ввода вывода с устройства? Что вы предпринимали для их устранения? Являлись ли ошибки предвестником поломки вашего диска? Вы смогли избежать потери ваших данных на таком диске? Поделитесь с нами вашим опытом по устранению ошибки ввода вывода в комментариях к нашей статье.
From Apache OpenOffice Wiki
Jump to: navigation, search
Contents
- 1 ISERROR
- 1.1 Syntax:
- 1.2 Example:
- 1.3 Issues:
ISERROR
Tests for any error value.
Syntax:
ISERROR(value)
- Returns TRUE if value refers to or evaluates to any error value, including #N/A, and FALSE otherwise.
- Use the ISERR function to test for any errors except #N/A.
Example:
ISERROR(SQRT(-1))
- returns TRUE, because taking the squareroot of -1 is an error.
ISERROR(C5)
- where C5 contains 123, returns FALSE, because 123 is not an error.
ISERROR(NA())
- returns TRUE, because NA() returns the #N/A error.
Issues:
- CHOOSE(0;»A»;»B»;»C»;»D») returns Err:502 (correctly — the index is out of range) but ISERROR(CHOOSE(0;»A»;»B»;»C»;»D»)) also returns Err:502, rather than TRUE. The error is propagated rather than evaluated.
See Also
- ISERR
- ISNA
- NA
- Information functions
- Functions listed alphabetically
- Functions listed by category
Советы, трюки, хитрости, инструкции, руководства
Страницы
2 октября 2014 г.
LibreOffice Calc: Поиск и возврат значений (функции VLOOKUP и IFERROR)
С Хабра:
«Как известно, знание функции VLOOKUP в MS EXCEL, достаточно чтобы в Москве стать средним аналитиком. Если человек знаком еще и с PIVOT или например знает как убрать дубликаты из списка — все двери в счастливый офисный мир перед ним настежь раскрыты.»
Эта статья является продолжением статьи «Импорт таблицы с сайта». Для диплома мне нужно вычислить ряд показателей. Некоторые из них считаются простым сложением счетов из оборотной ведомости. Но тут две проблемы:
- Счетов очень много;
- Мне нужно проделать это для пяти банков и в динамике за три года, итого 15 раз.
Не буду приводить все свои расчеты, покажу основную суть на небольшом примере.
Постановка задачи
Для расчета мне нужны данные из оборотной ведомости по счетам бухгалтерского учета кредитной организации (пример). Из нее мне нужны только левый столбец с номерами счетов и крайний правый с итоговыми суммами.
Допустим, один из требуемых показателей рассчитывается как сумма счетов: 20210 + 20305 + 30210 + 30233. На деле формула может включать десятки счетов.
Таким образом, мне нужно найти номера этих счетов и узнать сумму на них, а дальше сложить их.
Подготовка данных
Поиск и возврат значения (VLOOKUP)
Итак, чтобы не искать вручную номера счетов и их значения, я воспользовался функцией VLOOKUP. Она выполняет поиск в вертикальном порядке со ссылкой на соседние ячейки справа. Эта функция проверяет, содержится ли определенное значение в первом столбце массива. Функция возвращает значение в той же строке в соседнем столбце. Функцию можно найти в Мастере функций, но я буду вводить её прямо в ячейке.
Синтаксис функции следующий:
=VLOOKUP(Критерий поиска; Массив; Индекс; Порядок сортировки)
Критерий поиска — значение (число, текст или логическое значение), которое надо найти в первом столбце.
Массив — это массив данных, который должен содержать как минимум 2 столбца.
Индекс — номер столбца в массиве, содержащего значения, которые должны быть возвращены. Первый столбец имеет номер 1.
Порядок сортировки — необязательный параметр, который указывает порядок сортировки. Может принимать значение 0 и 1.
В моем случае формула будет иметь следующий вид:
=VLOOKUP(E16;A16:B142;2;0)
В столбце E у меня указаны номера счетов, которые нужно просуммировать для нахождения требуемого показателя. Значения в нём являются критерием поиска. Сам поиск производится в массиве состоящим из столбца А и В. Но поиск идет в столбце А, в котором находятся номера счетов оборотной ведомости.
В качестве индекса у меня указано число 2, это значит, что значения будут браться из второго столбца массива, т.е. из столбца В.
Обработка ошибок (IFERROR)
Проблема решается обертыванием предыдущей формулы в функцию IFERROR, которая проверяет наличие ошибок. В случае их отсутствия она возвращает полученное значения, в противном случае — то значение, которое мы укажем.
=IFERROR(значение; другое значение)
Обертывание выглядит следующим образом:
=IFERROR(VLOOKUP(E16;A16:B142;2;0);0)
Т.е. в случае успеха IFERROR вернет значение, которое найдет VLOOKUP. В случае ошибки вместо #Н/Д будет подставлен 0.
Все секреты Excel-функции ВПР (VLOOKUP) для поиска данных в таблице и извлечения их в другую
Прочитав статью, вы не только узнаете, как найти данные в таблице Excel и извлечь их в другую, но и приёмы, которые можно применять вместе с функцией ВПР.
Батьянов Денис на правах гостевого автора рассказывает в этом посте о том, как найти данные в одной таблице Excel и извлечь их в другую, а также открывает все секреты функции вертикального просмотра.
При работе в Excel очень часто возникает потребность найти данные в одной таблице и извлечь их в другую. Если вы ещё не умеете это делать, то, прочитав статью, вы не только научитесь этому, но и узнаете, при каких условиях вы сможете выжать из системы максимум быстродействия. Рассмотрено большинство весьма эффективных приёмов, которые стоит применять совместно с функцией ВПР.
Даже если вы годами используете функцию ВПР, то с высокой долей вероятности эта статья будет вам полезна и не оставит равнодушным. Я, например, будучи IT-специалистом, а потом и руководителем в IT, пользовался VLOOKUP 15 лет, но разобраться со всеми нюансами довелось только сейчас, когда я на профессиональной основе стал обучать людей Excel.
ВПР — это аббревиатура от вертикального просмотра. Аналогично и VLOOKUP — Vertical LOOKUP. Уже само название функции намекает нам, что она производит поиск в строках таблицы (по вертикали — перебирая строки и фиксируя столбец), а не в столбцах (по горизонтали — перебирая столбцы и фиксируя строку). Надо заметить, что у ВПР есть сестра — гадкий утёнок, которая никогда не станет лебедем, — это функция ГПР (HLOOKUP). ГПР, в противоположность ВПР, производит горизонтальный поиск, однако концепция Excel (да и вообще концепция организации данных) подразумевает, что ваши таблицы имеют небольшое количество столбцов и гораздо большее количество строк. Именно поэтому поиск по строкам нам требуется во много раз чаще, чем по столбцам. Если вы в Excel слишком часто пользуетесь функцией ГПР, то, вполне вероятно, что вы чего-то не поняли в этой жизни.
Синтаксис
Функция ВПР имеет четыре параметра:
=ВПР( ; ; [; ] ), тут:
— искомое значение (редко) или ссылка на ячейку, содержащую искомое значение (подавляющее большинство случаев);
— ссылка на диапазон ячеек (двумерный массив), в ПЕРВОМ (!) столбце которого будет осуществляться поиск значения параметра ;
— номер столбца в диапазоне, из которого будет возвращено значение;
— это очень важный параметр, который отвечает на вопрос, а отсортирован ли по возрастанию первый столбец диапазона . В случае, если массив отсортирован, мы указываем значение ИСТИНА (TRUE) или 1, в противном случае — ЛОЖЬ (FALSE) или 0. В случае, если данный параметр опущен, он по умолчанию становится равным 1.
Держу пари, что многие из тех, кто знает функцию ВПР как облупленную, прочитав описание четвёртого параметра, могут почувствовать себя неуютно, так как они привыкли видеть его в несколько ином виде: обычно там идёт речь о точном соответствии при поиске (ЛОЖЬ или 0) либо же о диапазонном просмотре (ИСТИНА или 1).
Вот сейчас надо напрячься и читать следующий абзац несколько раз, пока не прочувствуете смысл сказанного до конца. Там важно каждое слово. Примеры помогут разобраться.
Как же конкретно работает формула ВПР
- Вид формулы I. Если последний параметр опущен или указан равным 1, то ВПР предполагает, что первый столбец отсортирован по возрастанию, поэтому поиск останавливается на той строке, которая непосредственно предшествует строке, в которой находится значение, превышающее искомое. Если такой строки не найдено, то возвращается последняя строка диапазона.
- Вид формулы II. Если последний параметр указан равным 0, то ВПР последовательно просматривает первый столбец массива и сразу останавливает поиск, когда найдено первое точное соответствие с параметром , в противном случае возвращается код ошибки #Н/Д (#N/A).
Схемы работы формул
ВПР тип I
ВПР тип II
Следствия для формул вида I
- Формулы можно использовать для распределения значений по диапазонам.
- Если первый столбец содержит повторяющиеся значения и правильно отсортирован, то будет возвращена последняя из строк с повторяющимися значениями.
- Если искать значение заведомо большее, чем может содержать первый столбец, то можно легко находить последнюю строку таблицы, что бывает довольно ценно.
- Данный вид вернёт ошибку #Н/Д, только если не найдёт значения меньше или равное искомому.
- Понять, что формула возвращает неправильные значения, в случае если ваш массив не отсортирован, довольно затруднительно.
Следствия для формул вида II
Если искомое значение встречается в первом столбце массива несколько раз, то формула выберет первую строку для последующего извлечения данных.
Производительность работы функции ВПР
Вы добрались до кульминационного места статьи. Казалось бы, ну какая разница, укажу ли я в качестве последнего параметра ноль или единицу? В основном все указывают, конечно же, ноль, так как это довольно практично: не надо заботиться о сортировке первого столбца массива, сразу видно, найдено значение или нет. Но если у вас на листе несколько тысяч формул ВПР (VLOOKUP), то вы заметите, что ВПР вида II работает медленно. При этом обычно все начинают думать:
- мне нужен более мощный компьютер;
- мне нужна более быстрая формула, например, многие знают про ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), которая якобы быстрее на жалкие 5–10%.
И мало кто думает, что стоит только начать использовать ВПР вида I и обеспечить любыми способами сортировку первого столбца, как скорость работы ВПР возрастёт в 57 раз. Пишу прописью — В ПЯТЬДЕСЯТ СЕМЬ РАЗ! Не на 57%, а на 5 700%. Данный факт я проверил вполне надёжно.
Секрет такой быстрой работы кроется в том, что на отсортированном массиве можно применять чрезвычайно эффективный алгоритм поиска, который носит название бинарного поиска (метод деления пополам, метод дихотомии). Так вот ВПР вида I его применяет, а ВПР вида II ищет без какой-либо оптимизации вообще. То же самое относится и к функции ПОИСКПОЗ (MATCH), которая включает в себя аналогичный параметр, а также и к функции ПРОСМОТР (LOOKUP), которая работает только на отсортированных массивах и включена в Excel ради совместимости с Lotus 1-2-3.
Недостатки формулы
Недостатки ВПР очевидны: во-первых, она ищет только в первом столбце указанного массива, а во-вторых, только справа от данного столбца. А как вы понимаете, вполне может случиться так, что столбец, содержащий необходимую информацию, окажется слева от столбца, в котором мы будем искать. Этого недостатка лишена уже упомянутая связка формул ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), что делает её наиболее гибким решением по извлечению данных из таблиц в сравнении с ВПР (VLOOKUP).
Некоторые аспекты применения формулы в реальной жизни
Диапазонный поиск
Классическая иллюстрация к диапазонному поиску — задача определения скидки по размеру заказа.
Поиск текстовых строк
Безусловно, ВПР ищет не только числа, но и текст. При этом надо принимать во внимание, что регистр символов формула не различает. Если использовать символы подстановки, то можно организовать нечёткий поиск. Есть два символа подстановки: «?» — заменяет один любой символ в текстовой строке, «*» — заменяет любое количество любых символов.
Борьба с пробелами
Часто поднимается вопрос, как решить проблему лишних пробелов при поиске. Если справочную таблицу ещё можно вычистить от них, то первый параметр формулы ВПР не всегда зависит от вас. Поэтому если риск засорения ячеек лишними пробелами присутствует, то можно применять для очистки функции СЖПРОБЕЛЫ (TRIM).
Разный формат данных
Если первый параметр функции ВПР ссылается на ячейку, которая содержит число, но которое хранится в ячейке в текстовом виде, а первый столбец массива содержит числа в правильном формате, то поиск будет неудачным. Возможна и обратная ситуация. Проблема легко решается переводом параметра 1 в необходимый формат:
=ВПР(−−D7; Продукты!$A$2:$C$5; 3; 0) — если D7 содержит текст, а таблица — числа;
=ВПР(D7 & «»); Продукты!$A$2:$C$5; 3; 0) — и наоборот.
Кстати, перевести текст в число можно сразу несколькими способами, выбирайте:
- Двойное отрицание —D7.
- Умножение на единицу D7*1.
- Сложение с нулём D7+0.
- Возведение в первую степень D7^1.
Перевод числа в текст производится через сцепку с пустой строкой, которая заставляет Excel преобразовать тип данных.
Как подавить выдачу #Н/Д
Это очень удобно делать при помощи функции ЕСЛИОШИБКА (IFERROR).
Например: =ЕСЛИОШИБКА( ВПР(D7; Продукты!$A$2:$C$5; 3; 0); «»).
Если ВПР вернёт код ошибки #Н/Д, то ЕСЛИОШИБКА его перехватит и подставит параметр 2 (в данном случае пустая строка), а если ошибки не произошло, то эта функция сделает вид, что её вообще нет, а есть только ВПР, вернувший нормальный результат.
Массив
Часто забывают ссылку массива сделать абсолютной, и при протягивании массив «плывёт». Помните, что вместо A2:C5 следует использовать $A$2:$C$5.
Хорошей идеей является размещение справочного массива на отдельном листе рабочей книги. Не путается под ногами, да и сохраннее будет.
Ещё более хорошей идеей будет объявление этого массива в виде именованного диапазона.
Многие пользователи при указании массива используют конструкцию вида A:C, указывая столбцы целиком. Этот подход имеет право на существование, так как вы избавлены от необходимости отслеживать тот факт, что ваш массив включает все необходимые строки. Если вы добавите строки на лист с первоначальным массивом, то диапазон, указанный как A:C, не придётся корректировать. Безусловно, эта синтаксическая конструкция заставляет Excel проводить несколько большую работу, чем при точном указании диапазона, но данными накладными расходами можно пренебречь. Речь идёт о сотых долях секунды.
Ну и на грани гениальности — оформить массив в виде умной таблицы.
Использование функции СТОЛБЕЦ для указания колонки извлечения
Если таблица, в которую вы извлекаете данные при помощи ВПР, имеет ту же самую структуру, что и справочная таблица, но просто содержит меньшее количество строк, то в ВПР можно использовать функцию СТОЛБЕЦ() для автоматического расчёта номеров извлекаемых столбцов. При этом все ВПР-формулы будут одинаковыми (с поправкой на первый параметр, который меняется автоматически)! Обратите внимание, что у первого параметра координата столбца абсолютная.
Создание составного ключа через &»|»&
Если возникает необходимость искать по нескольким столбцам одновременно, то необходимо делать составной ключ для поиска. Если бы возвращаемое значение было не текстовым (как тут в случае с полем «Код»), а числовым, то для этого подошла бы более удобная формула СУММЕСЛИМН (SUMIFS) и составной ключ столбца не потребовался бы вовсе.
Это моя первая статья для Лайфхакера. Если вам понравилось, то приглашаю вас посетить мой сайт, а также с удовольствием прочту в комментариях о ваших секретах использования функции ВПР и ей подобных. Спасибо. 🙂
Блог про LibreOffice
Советы, трюки, хитрости, инструкции, руководства
Страницы
2 октября 2014 г.
LibreOffice Calc: Поиск и возврат значений (функции VLOOKUP и IFERROR)
С Хабра:
«Как известно, знание функции VLOOKUP в MS EXCEL, достаточно чтобы в Москве стать средним аналитиком. Если человек знаком еще и с PIVOT или например знает как убрать дубликаты из списка — все двери в счастливый офисный мир перед ним настежь раскрыты.»
Эта статья является продолжением статьи «Импорт таблицы с сайта». Для диплома мне нужно вычислить ряд показателей. Некоторые из них считаются простым сложением счетов из оборотной ведомости. Но тут две проблемы:
- Счетов очень много;
- Мне нужно проделать это для пяти банков и в динамике за три года, итого 15 раз.
Не буду приводить все свои расчеты, покажу основную суть на небольшом примере.
Постановка задачи
Для расчета мне нужны данные из оборотной ведомости по счетам бухгалтерского учета кредитной организации (пример). Из нее мне нужны только левый столбец с номерами счетов и крайний правый с итоговыми суммами.
Допустим, один из требуемых показателей рассчитывается как сумма счетов: 20210 + 20305 + 30210 + 30233. На деле формула может включать десятки счетов.
Таким образом, мне нужно найти номера этих счетов и узнать сумму на них, а дальше сложить их.
Подготовка данных
Поиск и возврат значения (VLOOKUP)
Итак, чтобы не искать вручную номера счетов и их значения, я воспользовался функцией VLOOKUP. Она выполняет поиск в вертикальном порядке со ссылкой на соседние ячейки справа. Эта функция проверяет, содержится ли определенное значение в первом столбце массива. Функция возвращает значение в той же строке в соседнем столбце. Функцию можно найти в Мастере функций, но я буду вводить её прямо в ячейке.
Синтаксис функции следующий:
=VLOOKUP(Критерий поиска; Массив; Индекс; Порядок сортировки)
Критерий поиска — значение (число, текст или логическое значение), которое надо найти в первом столбце.
Массив — это массив данных, который должен содержать как минимум 2 столбца.
Индекс — номер столбца в массиве, содержащего значения, которые должны быть возвращены. Первый столбец имеет номер 1.
Порядок сортировки — необязательный параметр, который указывает порядок сортировки. Может принимать значение 0 и 1.
В моем случае формула будет иметь следующий вид:
=VLOOKUP(E16;A16:B142;2;0)
В столбце E у меня указаны номера счетов, которые нужно просуммировать для нахождения требуемого показателя. Значения в нём являются критерием поиска. Сам поиск производится в массиве состоящим из столбца А и В. Но поиск идет в столбце А, в котором находятся номера счетов оборотной ведомости.
В качестве индекса у меня указано число 2, это значит, что значения будут браться из второго столбца массива, т.е. из столбца В.
Обработка ошибок (IFERROR)
Проблема решается обертыванием предыдущей формулы в функцию IFERROR, которая проверяет наличие ошибок. В случае их отсутствия она возвращает полученное значения, в противном случае — то значение, которое мы укажем.
=IFERROR(значение; другое значение)
Обертывание выглядит следующим образом:
=IFERROR(VLOOKUP(E16;A16:B142;2;0);0)
Т.е. в случае успеха IFERROR вернет значение, которое найдет VLOOKUP. В случае ошибки вместо #Н/Д будет подставлен 0.
ВПР (VLOOKUP)
Производит поиск по первому столбцу диапазона и возвращает значение из найденной ячейки.
Примеры использования
ВПР(10003; A2:B26; 2; ЛОЖЬ)
Синтаксис
ВПР(запрос; диапазон; индекс; [отсортировано])
запрос – критерий, по которому выполняется поиск ( например, 42 , » кошка» или I24 ).
диапазон – диапазон, в первом столбце которого будет производиться поиск по запросу .
индекс – номер столбца (от начала диапазона ), из которого нужно взять искомое значение.
- Если индекс не попадает в интервал от 1 до числа столбцов в диапазоне , возвращается ошибка #ЗНАЧЕН! .
отсортировано – по умолчанию [ ИСТИНА ]. Указывает, отсортированы ли данные в столбце, в котором производится поиск (первом столбце из указанного диапазона). Как правило, рекомендуемое значение – ЛОЖЬ.
Если для параметра отсортировано указать значение ЛОЖЬ (рекомендуется), возвращается только точное совпадение. Если таких совпадений несколько, возвращается значение для первого из них. Если точных совпадений нет, возвращается ошибка #Н/Д .
Если для параметра отсортировано не выбрано значение или выбрано ИСТИНА , возвращается значение, ближайшее к запрошенному (меньшее либо равное). Если все значения в столбце поиска больше указанного, возвращается ошибка #Н/Д .
Примечания
Если для параметра отсортировано не выбрано значение или выбрано ИСТИНА , а первый столбец диапазона не отсортирован, функция может вернуть неверное значение. Если результаты ВПР вызывают сомнение, убедитесь, что для последнего параметра указано значение ЛОЖЬ. Такая конфигурация подходит для большинства случаев. Если же данные в столбце отсортированы и вы хотите оптимизировать поиск, укажите значение ИСТИНА.
При поиске чисел или дат убедитесь, что первый столбец в диапазоне не отсортирован по текстовым значениям. К примеру, правильно отсортированные числа должны располагаться в порядке (1; 2; 10; 100). Если их отсортировать как текст, порядок будет иным: (1; 10; 100; 2). При неверном типе сортировки функция может вернуть неправильное значение.
Запросы на основе регулярных выражений НЕ поддерживаются. В этих случаях нужно использовать функцию QUERY .
ВПР работает быстрее, если данные в диапазоне отсортированы и для параметра отсортировано указано значение ИСТИНА .
Также для поиска можно использовать шаблоны с подстановочными знаками. Знаки «?» и «*» подставляются в запрос . При этом знак вопроса обозначает один символ, а звездочка – набор символов. Если вы хотите найти вопросительный знак или звездочку в тексте, введите перед искомым символом тильду (
), чтобы указать, что это не подстановочный знак. А если нужно найти тильду, введите ещё одну.
Похожие функции
QUERY : Выполняет запросы на базе языка запросов API визуализации Google.
ГПР : Производит поиск по первой строке диапазона и возвращает значение из найденной ячейки.
Примеры
ВПР ищет в первом столбце номер студента и возвращает соответствующую оценку.
ВПР ищет в первом столбце приблизительное значение дохода (параметр отсортировано имеет значение ИСТИНА ) и возвращает соответствующую ему ставку налога.
Если по запросу найдено несколько равных значений, ВПР возвращает первое из них.
ВПР (функция ВПР)
Совет: Попробуйте использовать новую функцию кслукуп — улучшенную версию функции ВПР, которая работает в любом направлении и возвращает точные совпадения по умолчанию, упрощая и удобную в использовании, чем его предшественник.
ФУНКЦИЯ ВПР используется, если нужно найти элементы в таблице или диапазоне по строкам. Например, можно найти цену на автомобильную часть по номеру детали или получить имя сотрудника на основе его кода сотрудника.
Совет: Чтобы получить дополнительную справку о функции ВПР, просмотрите эти видео с YouTube от экспертов сообщества Excel!
Самая простая функция ВПР означает следующее:
= ВПР (необходимые условия для поиска, номер столбца в диапазоне, содержащий возвращаемое значение, возвращаемое приближенное или точное соответствие — обозначено как 1/истина или 0/ложь).
Совет: Секрет функции ВПР состоит в организации данных таким образом, чтобы искомое значение (Фрукт) отображалось слева от возвращаемого значения, которое нужно найти (Количество).
Используйте функцию ВПР для поиска значения в таблице.
ВПР(искомое_значение, таблица, номер_столбца, [интервальный_просмотр])
= ВПР (A2; A10: C20; 2; ИСТИНА)
= ВПР (a2; сведения о клиенте)! А:Ф, 3, ЛОЖЬ)
Значение для поиска. Значение, которое вы хотите найти, должно находиться в первом столбце диапазона ячеек, указанного в аргументе table_array .
Например, если Таблица-массив охватывает ячейки B2: D7, то lookup_value должен находиться в столбце B.
Искомое_значение может являться значением или ссылкой на ячейку.
Диапазон ячеек, в котором будет выполнен поиск искомого_значения и возвращаемого значения с помощью функции ВПР. Вы можете использовать именованный диапазон или таблицу, а вместо ссылок на ячейки можно использовать имена в аргументе.
Первый столбец в диапазоне ячеек должен содержать lookup_value. Диапазон ячеек также должен содержать возвращаемое значение, которое нужно найти.
Номер столбца (начиная с 1 для самого левого столбца table_array), содержащего возвращаемое значение.
Логическое значение, определяющее, какое совпадение должна найти функция ВПР, — приблизительное или точное.
Приближенное соответствие: 1/истина предполагает, что первый столбец в таблице отсортирован либо в числовом формате, либо в алфавитном порядке, а затем будет искать ближайшее значение. Это способ по умолчанию, если не указан другой. Например, = ВПР (90; a1: B100; 2; истина).
Точное совпадение: 0/ложь осуществляет поиск точного значения в первом столбце. Например, = ВПР («Смит»; a1: B100; 2; ложь).
Начало работы
Для построения синтаксиса функции ВПР вам потребуется следующая информация:
Значение, которое вам нужно найти, то есть искомое значение.
Диапазон, в котором находится искомое значение. Помните, что для правильной работы функции ВПР искомое значение всегда должно находиться в первом столбце диапазона. Например, если искомое значение находится в ячейке C2, диапазон должен начинаться с C.
Номер столбца в диапазоне, содержащий возвращаемое значение. Например, если в качестве диапазона задано значение B2: D11, число B должно быть первым столбцом, а в качестве второго — «C» и т. д.
При желании вы можете указать слово ИСТИНА, если вам достаточно приблизительного совпадения, или слово ЛОЖЬ, если вам требуется точное совпадение возвращаемого значения. Если вы ничего не указываете, по умолчанию всегда подразумевается вариант ИСТИНА, то есть приблизительное совпадение.
Теперь объедините все перечисленное выше аргументы следующим образом:
= ВПР (искомое значение; диапазон с искомым значением; номер столбца в диапазоне с возвращаемым значением, приближенное соответствие (истина) или точное совпадение (ложь)).
Примеры
Вот несколько примеров использования функции ВПР.
Пример 1
Пример 2
Пример 3
Пример 4
Пример 5
Вы можете использовать функцию ВПР для объединения нескольких таблиц в одну, если одна из них имеет общие поля. Это может быть особенно удобно, если вам нужно предоставить доступ к книге пользователям более ранних версий Excel, которые не поддерживают функции работы с данными с несколькими таблицами в качестве источников данных — путем объединения источников в одну таблицу и изменения источника данных компонента данных на новый. Таблица, функция данных может использоваться в более ранних версиях Excel (при условии, что сама функция данных поддерживается в более ранней версии).
Здесь в столбцах A-F и H есть значения или формулы, которые используют только значения на листе, а остальные столбцы используют функцию ВПР и значения столбца A (клиентский код) и столбец B (юрист) для получения данных из других таблиц.
Скопируйте таблицу с общими полями на новый лист и присвойте ей имя.
Чтобы открыть диалоговое окно Управление связями, нажмите кнопку данные > работа с данными > связей .
Для каждой из перечисленных связей обратите внимание на следующее:
Поле, связывающее таблицы (в диалоговом окне отображаются в круглых скобках). Это lookup_value формулы функции ВПР.
Имя связанной таблицы подстановки. Это table_array формулы функции ВПР.
Поле (столбец) в связанной таблице подстановки с данными, которые вы хотите добавить в новый столбец. Эти сведения не отображаются в диалоговом окне Управление связями. чтобы узнать, какое поле вы хотите извлечь, вам потребуется ознакомиться со связанной таблицей подстановки. Вы хотите отметить номер столбца (A = 1) – это col_index_num в формуле.
Чтобы добавить поле в новую таблицу, введите формулу ВПР в первом пустом столбце с помощью сведений, собранных в действии 3.
В нашем примере столбец G использует юрист ( lookup_value) для получения данных о тарифных курсах из четвертого столбца (col_index_num = 4) из таблицы судебные тблатторнэйс ( table_array) с формулой = ВПР ([@Attorney], tbl_Attorneys, 4, ложь).
В формуле также могут использоваться ссылки на ячейки и ссылки на диапазоны. В нашем примере это было бы = ВПР (a2; «Юристы»! А:Д, 4, ложь).
Продолжайте добавлять поля, пока не будут созданы все нужные поля. Если вы пытаетесь подготовить книгу с функциями данных, которые используют несколько таблиц, измените источник данных функции данных в новой таблице.
Содержание
- Не работает OpenOffice
- unixforum.org
- Не работает openoffice (Невозможно запустить приложение. Язык пользовательского интерфейса не)
- Не работает openoffice
- Re: Не работает openoffice
- Re: Не работает openoffice
- Re: Не работает openoffice
- Re: Не работает openoffice
- OpenOffice не запускается — Вокруг-Дом — 2021
- Table of Contents:
- Недостаточно памяти
- Шаг 1
- Шаг 2
- Шаг 3
- Конфликт программного обеспечения
- Тестирование на конфликт антивирусного программного обеспечения
- Шаг 1
- Шаг 2
- Шаг 3
- Разблокировка OpenOffice
- Шаг 1
- Шаг 2
- Вирус или вредоносная инфекция
- Коррумпированный профиль пользователя
- Неисправное обновление или установка
- Как устранить неполадки компьютера, который не запускается
- Мой DVD-привод не запускается автоматически
- Мой компьютер не запускается и издает звуковой сигнал
- Word не запускается (Октябрь 2021).
- Возможные ошибки в OpenOffice
- Распространенные ошибки при работе в OpenOffice: причины и способы устранения
- Общая ошибка ввода – вывода
- Невозможно записать файл
- Ошибка при сохранении документа – доступ запрещен
- Ошибка нет пары
- Отсутствует оператор
- Отсутствует переменная
- Циклическая ссылка
Не работает OpenOffice
При попытке запустить файл OpenOffice или LibreOffice ничего не происходит и программа не открывается.
Open Office и Libre Office это бесплатные офисные программы, аналоги программы Microsoft Office. В их состав входит:
Open Office и Libre Office
Платный вариант
Microsoft Office
Редактор текстов (Writer)
Microsoft Word Редактор таблиц (Calc) Microsoft Excel Графический редактор (Draw), Программа для разработки слайд-шоу(Impress) Microsoft Power Point Программа для управления базами данных.(Base) Microsoft Access Редактор формул (Math)
Скачать бесплатную офисную программу можно на официальном сайте: www.openoffice.org/ru/download/ и https://ru.libreoffice.org/download
Как решить проблему с запуском ОпенОфис:
Самая частая проблема с запуском это зависание процессов soffice.exe и soffice.bin
Проверяем так ли это:
Щелкаем правой кнопкой мыши на панели задач – ‘Запустить диспетчер задач’ или запускаем напрямую Выполнить (Найти) taskmgr.exe.
Переходим на вкладку “Процессы”:
Видим множество запущенных процессов soffice.exe и soffice.bin. Закрываем их все выбрав процесс и нажав кнопку “Завершить процесс”. Будьте аккуратны и не закройте какой-нибудь другой нужный процесс. После закрытия всех процессов программа OpenOffice должна запускаться.
Если не получилось, возможна необходима проверка на вирусы
Для проверки и лечения вирусов используйте утилиты (к примеру Cureit от Dr WEB или Kaspersky Virus Removal Tool от лаборатории Касперского). Запуск утилит лучше осуществлять с загрузочной флешки или диска.
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
Не работает openoffice (Невозможно запустить приложение. Язык пользовательского интерфейса не)
Модератор: /dev/random
Не работает openoffice
Сообщение _malic » 03.07.2009 16:33
Re: Не работает openoffice
Сообщение _malic » 01.11.2009 18:16
Прошло полгода и наступил на те же грабли .
Все тоже самое только версии офиса другие .
Переустановка не помогает. Работает только если установить в ручную Инфра сборку в домашнюю директорию и оттуда запускать бинарик офиса. Гугл молчит. Я в шоке .
Хелп ми .
ps
В прошлый раз ничего умнее полной переустановки не придумал. Решения не нашел.
Re: Не работает openoffice
Сообщение Bizdelnick » 01.11.2009 18:30
/.ooo3 в такой же ситуации помогло. Тогда оно после обновления началось.
в консол и вку́пе (с чем-либо) в общем в ообще |
в течени е (часа) нович ок нюанс п о умолчанию |
приемл емо пробле ма проб овать тра фик |
Re: Не работает openoffice
Сообщение BIgAndy » 01.11.2009 18:40
Re: Не работает openoffice
Сообщение _malic » 01.11.2009 18:57
Ничего не обновлял. Ошибка проявляется после некорректного закрытия офиса.
В терминал ругается мало .
/.ooo3 в такой же ситуации помогло.
У меня если снести, то начинает ругаться на
Источник
OpenOffice не запускается — Вокруг-Дом — 2021
Table of Contents:
Когда OpenOffice не запускается, есть несколько возможных причин. В некоторых случаях проблема может быть связана с вашим компьютером, например, из-за нехватки памяти или антивирусного программного обеспечения, блокирующего OpenOffice. Иногда причиной может быть поврежденный профиль OpenOffice или неудачное обновление.
Недостаточно памяти
В то время как любой современный компьютер может комфортно запускать OpenOffice в большинстве условий, многозадачность с ресурсоемкими программами может быть причиной сбоя при запуске OpenOffice. Веб-браузеры с большим количеством интерактивного контента, графические редакторы, медиаплееры и онлайн-игры могут занимать значительные объемы памяти. В этих случаях в Windows также может появиться сообщение о том, что у вас недостаточно памяти для запуска OpenOffice.
Шаг 1
Шаг 2
После запуска компьютера закройте все ненужные программы. Это включает в себя приложения, работающие в системном трее.
Шаг 3
Конфликт программного обеспечения
Программы, конфликтующие с OpenOffice, могут иногда вызывать сбой запуска OpenOffice. Наиболее распространенным типом конфликта программного обеспечения является антивирусная программа или программа брандмауэра, блокирующая доступ к OpenOffice, обычно в результате предполагаемой подозрительной онлайн-активности OpenOffice.
Тестирование на конфликт антивирусного программного обеспечения
Шаг 1
Отключите компьютер от Интернета.
Шаг 2
Выключите антивирусное программное обеспечение.
Шаг 3
Попробуйте запустить OpenOffice. Если OpenOffice запускается без проблем, значит, ваше антивирусное программное обеспечение блокирует OpenOffice.
Разблокировка OpenOffice
Шаг 1
Перезапустите антивирусное программное обеспечение.
Шаг 2
Создайте исключение в вашем программном обеспечении безопасности для OpenOffice. Ниже приведены некоторые ссылки на эту процедуру для нескольких популярных антивирусных программ.
Вирус или вредоносная инфекция
Вирус или вредоносное ПО может быть причиной того, что OpenOffice не открывается, особенно если вы заметили, что другие программы также не запускаются. Если вы подозреваете вирусную или вредоносную инфекцию, запустите антивирусную проверку с помощью продукта, подобного Конфликт программного обеспечения раздел, а также инструмент для защиты от вредоносных программ, таких как Malwarebytes, Spybot и SuperAntiSpyware. Если при сканировании обнаруживаются какие-либо инфекции, поместите их в карантин или удалите и перезагрузите компьютер; затем попробуйте запустить OpenOffice.
Коррумпированный профиль пользователя
Поврежденные профили пользователей являются еще одним распространенным фактором, когда OpenOffice не запускается. Каждый раз, когда вы используете OpenOffice, создается профиль, содержащий ваши предустановки, настройки и все установленные расширения. Когда этот профиль поврежден, OpenOffice не может загрузить его правильно и, таким образом, вылетает, прежде чем он даже запустится. Единственное решение этой проблемы — создать новый профиль.
кредит: Изображение предоставлено Microsoft.
Нажмите Окна-X и выберите Проводник из меню опытного пользователя.
кредит: Изображение предоставлено Microsoft.
Перейдите в следующую папку:
C: Users YourWindowsUsername AppData Roaming OpenOffice 4
кредит: Изображение предоставлено Microsoft.
Щелкните правой кнопкой мыши пользователь папку и выберите удалять.
Неисправное обновление или установка
Если OpenOffice перестал работать после недавнего обновления или переустановки, возможно, проблема связана с ошибкой, возникшей в процессе установки или обновления. Если обновление или установка не завершены должным образом, неполный или поврежденный код может легко вызвать сбой OpenOffice при попытке его загрузить. В этих случаях удаление, а затем переустановка OpenOffice, как правило, является единственным решением.
Как устранить неполадки компьютера, который не запускается
Компьютер, который не запускается, может вызывать тревогу и приводить в бешенство, особенно если вы находитесь в крайнем сроке или вы не выполняете резервное копирование всех своих данных (как мы все склонны .
Мой DVD-привод не запускается автоматически
Мой компьютер не запускается и издает звуковой сигнал
Обычно плохо, когда ваш компьютер не запускается; часто хуже, когда оно не начинается и начинает подавать звуковой сигнал. Компьютер, который не запускается и делает .
Word не запускается (Октябрь 2021).
Источник
Возможные ошибки в OpenOffice
Что представляет собой общая ошибка ввода вывода в OpenOffice, и как ее исправить? С этим вопросом сталкиваются пользователи, кто впервые испытал определенные проблемы, при работе с этим вариантом программного обеспечения. На практике речь идет про аппаратный сбой, вызванный той или иной неполадкой в работе системы. Так как столкнуться с этой бедой может каждый, но далеко не все знают, как справляться в этой ситуации, здесь предстоит наглядно разобрать все наиболее важные моменты.
Распространенные ошибки при работе в OpenOffice: причины и способы устранения
Перед тем как углубляться в подробности, предварительно предстоит обратить внимание на общие вопросы, которые могут возникать у юзеров при работе с этим программным обеспечением. На практике, чаще всего появляются следующие моменты, в которых не так просто разобраться:
- Общая ошибка ввода или вывода значений в приложении.
- Невозможно записать файл на жесткий диск или другой носитель.
- Запрет доступа для сохранения документа в память устройства.
- Сбой, при отсутствии корректной и актуальной пары.
- Отсутствует оператор, и как следствие подключение.
- Нет переменной и корректного значения для расчета.
- Циклическая или неправильно составленная ссылка на ресурс.
В настоящее время, это довольно распространенные варианты ошибок, а также соответствующие вопросы, с которыми часто сталкиваются неопытные пользователи, кто еще не успел освоиться и привыкнуть к работе с этим современным и многофункциональным программным обеспечением.
Важно! Не стоит забывать о том, что здесь были представлены лишь простейшие неполадки в работе приложения, которые можно устранить самостоятельно, если четко и последовательно выполнять конкретные действия.
Общая ошибка ввода – вывода
Это достаточно распространенный аппаратный сбой, который символизирует о том, что файл был поврежден вследствие его повреждения или заражения вредоносным программным обеспечением. В данном случае вы можете попытаться запустить саму утилиту, и при помощи ее инструментов открыть этот файл, однако результат не гарантирован. В остальном, такие ошибки не подлежат исправлению, если только у вас не получится вылечить каталог при помощи антивирусной утилиты, если он в действительности оказался пораженным вирусом.
Невозможно записать файл
С такой ошибкой приходится сталкиваться в том случае, когда пользователь задает неверное или недопустимое имя для файла, которое не может быть ему присвоено системой по объективным причинам. В данном случае, вы можете корректно переименовать название, либо поменять формат сохраняемого объекта. Как правило, этих манипуляций вполне достаточно, чтобы впоследствии прекратилось появление этого аппаратного сбоя, выдаваемого программным обеспечением OpenOffice при попытке записать файл на носитель.
Ошибка при сохранении документа – доступ запрещен
Такой сбой появляется в ситуации, когда у вашей учетной записи недостаточно прав для сохранения документа в том или ином пространстве жесткого диска. Имеется вероятность, что администратор ограничил места на устройстве, к которым пользователь имеет прямой доступ. Именно поэтому, чтобы впоследствии не происходил аппаратный сбой, предстоит сохранять документ там, где вы можете это сделать. Иными словами, в утилите необходимо прописать корректный путь для записи.
Ошибка нет пары
В данном случае речь идет про аппаратную ошибку при вводе значений. Не стоит забывать о том, что у некоторых знаков в обязательном порядке должна быть пара, в противном случае система распознает сбой, о чем незамедлительно вас уведомит. Именно поэтому, для устранения проблемы, необходимо лишь проверить корректность указанных значений, присутствует вероятность, что вы где-то упустили скобку, либо иной парный знак, чего делать нельзя, иначе теряется смысл, а непосредственный расчет становится невозможным.
Отсутствует оператор
Здесь речь идет о моментах, когда пользователь упускает определенный важный знак при построении математического выражения. Иными словами, если вы построили алгоритм «=2(1+3)», то система автоматически выдаст вам уведомление, что отсутствует оператор, или простым языком вспомогательный знак при построении выражения. Здесь также необходимо проверить корректность ввода всех символов, чтобы впоследствии исключить возможность повторного проявления ошибки. В данном случае на указанном примере должно измениться следующее: «=2*(1+3)». Только в этой ситуации система распознает и примет параметры.
Отсутствует переменная
В данном случае речь идет про символ, который по какой-либо причине пропустил пользователь в момент построения выражения. Иными словами, два знака не могут идти друг за другом, так как теряется смысл математического построения, о чем и уведомляет вас утилита. Рассматривая на примере, можно выделить такой момент, как «“=2*+3». Разумеется, такой ввод данных можно назвать некорректным, а программа в свою очередь уведомляет вас об этом, ссылаясь на то, что, по всей видимости, вы пропустили значение, либо по ошибке поставили два знака одновременно.
Циклическая ссылка
У этой ошибки имеется внутренний код 522, что свидетельствует об отсутствии цикла. Иными словами, формула начинает ссылаться на себя, и говорить о том, что не были заданы необходимые параметры. Чтобы разрешить этот аппаратный сбой, вам потребуется перейти в раздел Сервис, выбрать параметры, и после применить корректные значения. Это позволит впоследствии не допустить появления подобной помарки и соответствующих трудностей при последующем построении. Следует обязательно сохранить все внесенные изменения.
Важно! Все ошибки имеют определенный внутренний код, используя который вы сможете без особых затруднений найти подробное описание, а кроме того методики разрешения возникших проблем.
При работе с таким программным обеспечением как Опен Офис, могут возникать различные трудности, которые нередко отображаются в виде ошибок во всплывающем окне. На практике, не стоит паниковать раньше времени, так как к ним очень часто приводят неправильные действия пользователя. На практике, все что здесь требуется, это найти соответствующее описание проблемы. А после руководствуясь этими моментами внести определенные изменения, что с высокой долей вероятности поможет при разрешении проблемы.
Источник