Excel в функции ячейки ЗНАЧЕНИЕ для формул

Excel в функции ячейки ЗНАЧЕНИЕ для формул

У меня есть таблица Excel, которую мне нужно запустить на Android. Единственная проблема, я использовал VBA для функции Evaluate, а VBA не работает в приложениях Android. Я искал альтернативу и наткнулся на функцию "VALUE()", я увидел, что ячейка с:

=VALUE(10 + 5 * 3)

Вернет правильный результат (25). Теперь я хотел бы сделать следующее:

=VALUE(A2)

Где A2 — текст, содержащий «10 + 5 * 3». Но это возвращает «#ЗНАЧЕНИЕ!»

Есть ли способ использовать VALUE() для оценки простых формул?

Спасибо!

решение1

Есть хак, который существует уже много лет и делает это в полной версии Excel. Сомневаюсь, что он будет работать на Android, но попробовать стоит.

Я использую Excel 2013.

Перейдите на ленту ФОРМУЛЫ и выберите команду Присвоить имя.

Назовите любое имя, напримерmyResult

В части «Ссылается на:» введите формулу=EVALUATE(A2)

Теперь вставьте формулу =myResultна листе в то место, где вы хотите увидеть ответ.

решение2

Используйте INDIRECT().

Пример (изФункция Microsoft Office ДВССЫЛ):

Данные
В2 1.333
В3 45
Джордж 10
5 62
Формула Описание Результат
'=INDIRECT(A2) Значение ссылки в ячейке A2. Ссылка на 1.333
                   ячейка B2, содержащая значение 1,333.                                   
'=INDIRECT(A3) Значение ссылки в ячейке A3. Ссылка на 45
                   ячейка B3, содержащая значение 45.
'=INDIRECT(A4) Поскольку ячейка B4 имеет определенное имя "George", ссылка на 10
                   это определенное имя относится к ячейке B4, которая содержит значение 10
'=INDIRECT("B"&A5) Объединяет "B" со значением в A5, которое равно 5. Это, в свою очередь, 62
                   относится к ячейке B5, содержащей значение 62.

Применимо к: Excel 2016, Excel 2010, Excel Starter, Excel 2013, Excel Online, Excel 2016 для Mac, Excel для Mac 2011, Excel 2007

решение3

Для этого ЕСТЬ «хитрость».

Я предполагаю, что вы имеете в виду, что вы хотели бы оценить простую формулу, такую ​​как та, что используется в вашей VALUE()формуле: 10 + 5 * 3, а не версию, буквально окруженную кавычками. Но даже если вы не использовали обычное соглашение, чтобы показать интересующую вас вещь внутри кавычек, и действительно представили бы строку для оценки в ячейке с кавычками, ну, это тоже можно сделать.

И ОЧЕНЬ просто.

Чтобы сделать то, что, как я полагаю, вы хотите сделать: скажем, ячейка A1 имеет содержимое: 10 + 5 * 3. Вы решаете, куда вы хотите направить свой вывод относительно ячейки A1, и выбираете нужную ячейку. Итак, если вы хотите получить вывод в ячейке C1, выберите C1. Пока он выбран, создайте именованный диапазон, возможно, с именем TextCalculate, и задайте ему следующую формулу для его Refers toзначения:

=EVALUATE(A1)

Закройте его и в ячейке C1 введите:

=TextCalculate

и он оценит все, что находится в ячейке A1, как вам нужно (ЕСЛИ это возможно: это должно быть что-то, что Excel может понять!) и отобразит результат в ячейке C1.

Если вам действительно нужны кавычки вокруг входных данных, то это так же просто, как настроить еще один именованный диапазон для такого типа входных данных и присвоить ему значение:

=EVALUATE(EVALUATE(A1))

Первый EVALUATE()метод удаляет кавычки, а второй оценивает чистую оставшуюся строку.

Обратите внимание, я сказал поместить функциюВ УКАЗАННОМ ДИАПАЗОНЕвместо того, чтобы сказать, поместите его прямо в ячейку. Это абсолютная необходимость, никаких махинаций, и если вы попробуете это и это не сработает, вы, вероятно, все равно попробовали это на стороне ячейки. Сделайте это В ИМЕНОВАННОМ ДИАПАЗОНЕ, и это сработает.

Почему так? Что ж, это интересно, хотя я думаю, из вашего вопроса вы уже знаете, почему... но другие читатели могут не знать (отсюда и следующее, и, безусловно, ненужные вам предостережения о том, чтобы пробовать это только в именованных диапазонах). Функция из набора команд, которые Excel использовал для создания макросов до внедрения VBA. Она предназначена для использования в макросах, созданных с использованием старых инструментов, и единственное место в самом Excel, где они все еще работают, — это функционал именованных диапазонов. Обратите внимание, что они никогда, ни один из них, не работали вне макросов, и они не работают и сегодня: за исключением внутри именованного диапазона.

Пока версия Android может использовать именованные диапазоны, она может работать там. Честно говоря, я не могу это проверить и верю, что это может быть не так, поскольку, по моему лучшему предположению, версия Android является переписанной, а не портированной, и они могли отказаться от этого аспекта Excel, особенно потому, что он был для макросов, а вы обнаружите, что Android не будет их делать. Однако, поскольку он не является частью самого VBA, а просто доступен для него, он мог быть портирован, и он появился, хотя они не встроили интерфейс в VBA (и, как я предполагаю, ни в что-либо еще). Так что попробуйте EVALUATE()использовать именованный диапазон в Android Excel и посмотрите. Он действительно мог не быть включен, но, опять же, мог быть включен. Не как инструмент для VBA, очевидно, но все еще может быть доступен для именованных диапазонов.

Надо что-то проверить, прежде чем останавливаться... облом... имена, используемые в , LET()кажутся очень похожими на именованные диапазоны, «ограниченные» индивидуальной формулой (они кажутся такими в целом и заменят фактически определенный именованный диапазон, так что...), и я задавался вопросом, будет ли это работать в формуле для имени, используемого в LET(). Увы, этого не произошло... Должно быть, что-то большее (или меньшее) к этому.

Связанный контент