수식에 대한 셀 함수 VALUE의 Excel

수식에 대한 셀 함수 VALUE의 Excel

Android에서 실행해야 하는 Excel 시트가 있습니다. 문제는 평가 기능에 VBA를 사용했는데 VBA가 Android 앱에서 작동하지 않는다는 것입니다. 대안을 찾고 있던 중 "VALUE()" 함수를 찾았는데 다음과 같은 셀이 있는 것을 보았습니다.

=VALUE(10 + 5 * 3)

올바른 결과(25)를 반환합니다. 이제 제가 하고 싶은 일은 다음과 같습니다.

=VALUE(A2)

여기서 A2는 "10 + 5 * 3"을 포함하는 텍스트입니다. 그러나 이것은 "#VALUE!"를 반환합니다.

간단한 수식을 평가하기 위해 VALUE()를 사용할 수 있는 방법이 있나요?

감사해요!

답변1

Excel의 정식 버전에서 이 작업을 수행하는 해킹이 수년 동안 있었습니다. Android에서 작동할지는 의문이지만 시도해 볼 가치가 있습니다.

엑셀 2013을 사용하고 있습니다.

FORMULAS 리본 바로 이동하여 이름 정의를 선택합니다.

예를 들어 이름을 지정하십시오.myResult

"참조:" 부분에 공식을 입력하세요.=EVALUATE(A2)

이제 =myResult답을 표시하려는 시트에 수식을 입력하세요.

답변2

INDIRECT()를 사용합니다.

예(fromMicrosoft Office INDIRECT 기능):

데이터
B2 1.333
B3 45
조지 10
5 62
공식 설명 결과
'=INDIRECT(A2) 셀 A2의 참조 값입니다. 참고 자료는 1.333입니다.
                   값 1.333이 포함된 셀 B2.                                   
'=INDIRECT(A3) 셀 A3의 참조 값입니다. 참고로 45
                   값 45가 포함된 셀 B3입니다.
'=INDIRECT(A4) 셀 B4에 정의된 이름 "George"가 있으므로 10에 대한 참조는
                   정의된 이름은 값 10을 포함하는 셀 B4에 대한 것입니다.
'=INDIRECT("B"&A5) "B"를 A5의 값인 5와 결합합니다. 결과적으로 62
                   값 62가 포함된 셀 B5를 참조합니다.

적용 대상: Excel 2016, Excel 2010, Excel Starter, Excel 2013, Excel Online, Mac용 Excel 2016, Mac용 Excel 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()따옴표를 제거한 다음 두 번째는 깨끗한 나머지 문자열을 평가합니다.

내가 함수를 넣으라고 말한 것에 주목하세요명명된 범위 내셀에 직접 넣는 것이 아니라. 이것은 꼭 해야 하는 일이며, 망칠 일이 없습니다. 이것을 시도했지만 작동하지 않는다면 어쨌든 셀 측에서 시도했을 것입니다. 명명된 범위에서 수행하면 작동합니다.

왜 그런 겁니까? 글쎄, 그것은 흥미롭습니다. 귀하의 질문에서 이미 이유를 알고 있다고 생각하지만 다른 사람들은 그렇지 않을 수도 있습니다. 따라서 다음 내용은 명명된 범위에서만 시도하는 것에 대한 훈계와 확실히 필요하지 않습니다. 이 기능은 VBA가 구현되기 전에 매크로를 작성하는 데 사용된 Excel 명령 세트에서 나온 것입니다. 이는 이전 도구를 사용하여 작성된 매크로에 사용하도록 설계되었으며 Excel 자체에서 여전히 작동하는 유일한 위치는 명명된 범위 기능입니다. 그들 중 누구도 매크로 외부에서 작업한 적이 없으며 오늘날에도 명명된 범위 내부를 제외하고는 작업하지 않습니다.

Android 버전이 명명된 범위를 사용할 수 있는 한 그곳에서도 작동할 수 있습니다. 솔직히, 나는 그것을 확인할 수 없으며 Android 버전이 포트가 아니라 재작성되었으며 특히 매크로용이었고 Android가 그렇지 않을 것이기 때문에 Excel의 이러한 측면을 버렸을 수도 있다는 것이 최선의 추측이기 때문에 그렇지 않을 수도 있다고 믿습니다. 그러지 마세요. 그러나 VBA 자체의 일부가 아니기 때문에 액세스할 수 있을 뿐이고 VBA에 대한 인터페이스를 구축하지 않았음에도 불구하고 이식될 수 있었습니다(그러므로 다른 어떤 것도 가정하지 않을 것입니다). 따라서 EVALUATE()Android Excel에서 명명된 범위를 시험해보고 확인하세요. 실제로 가져오지 않았을 수도 있지만, 가져왔을 수도 있습니다. 분명히 VBA용 도구는 아니지만 명명된 범위에서는 여전히 사용할 수 있습니다.

중지하기 전에 뭔가 테스트해야 합니다... 안타깝습니다... 사용된 이름은 LET()개별 수식에 "범위가 지정된" 명명된 범위와 매우 유사해 보입니다(일반적으로 그렇게 보이며 실제로 정의된 명명된 범위를 대체하므로...). 그리고 그것이 에서 사용되는 이름의 공식에 적용되는지 궁금했습니다 LET(). 하지만 아쉽게도 그렇지 않았습니다... 그 정도(또는 그 이하)임에 틀림없습니다.

관련 정보