Excel 中公式的儲存格函數 VALUE

Excel 中公式的儲存格函數 VALUE

我有一個 Excel 工作表,需要在 Android 上運行。唯一的問題是,我使用 VBA 來評估函數,但 VBA 不適用於 Android 應用程式。我正在尋找替代方案,並繞過了函數“VALUE()”,我看到一個單元格具有:

=VALUE(10 + 5 * 3)

將會回傳正確的結果 (25)。現在我想做的是:

=VALUE(A2)

其中A2是包含「10 + 5 * 3」的文字。但這會回傳“#VALUE!”

有什麼技巧可以使用 VALUE() 來評估簡單的公式嗎?

謝謝!

答案1

有一個已經存在多年的 hack 可以在完整版 Excel 中執行此操作。我懷疑它是否能在 Android 上運行,但可能值得嘗試。

我使用的是 Excel 2013。

前往公式功能區列並選擇定義名稱。

給予任何名稱,例如myResult

在「引用:」部分,輸入公式=EVALUATE(A2)

現在,將公式放入=myResult工作表中您希望答案出現的位置。

答案2

使用間接()。

範例(來自Microsoft Office 間接函數):

數據
B2 1.333
B3 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)組合起來。
                   引用儲存格 B5,其中包含值 62。

適用於:Excel 2016、Excel 2010、Excel Starter、Excel 2013、Excel Online、Excel 2016 for Mac、Excel for 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()。可惜的是,它並沒有……一定是更多(或更少)。

相關內容