programing

문자열 공식을 "실제" 공식으로 바꾸는 방법은 무엇입니까?

telebox 2023. 5. 12. 22:04
반응형

문자열 공식을 "실제" 공식으로 바꾸는 방법은 무엇입니까?

있습니다0,4*A1감방에서다른 셀에서 어떻게 이 "끈 공식"을 실제 공식으로 변환하고 값을 계산할 수 있습니까?

Evaluate적합할 것:

http://www.mrexcel.com/forum/showthread.php?t=62067

Function Eval(Ref As String)
    Application.Volatile
    Eval = Evaluate(Ref)
End Function

저는 제 공식을 정상적으로 연결했지만, 처음에는'=대신에=.

그런 다음 필요한 곳에 텍스트로 복사하여 붙여넣습니다.그런 다음 텍스트로 저장된 섹션을 강조 표시하고 +를 눌러 찾아 바꿉니다.
교체합니다.'=와 함께=제 모든 기능이 활성화되어 있습니다.

몇 단계지만 VBA를 피할 수 있습니다.

UPDATE 이 기능은 2007년에 작동했지만 Excel 2013에서는 작동하지 않습니다.

EXCEL 2013:

이것은 완전히 같지는 않지만, 한 셀에 0.4를 넣고(예: B1), 다른 셀에 텍스트 값 A1을 넣을 수 있다면(예: C1, 예: C1), 셀 D1에서 =B1*을 사용할 수 있습니다.INDirect(C1). 0.4 * A1의 값이 계산됩니다.

그래서, 만약 A1 = 10이면, 당신은0.4*10 = 4더 나은 2013년 솔루션을 찾을 수 있으면 다시 업데이트하겠습니다. 마이크로소프트가 INDIVENT의 원래 기능을 파괴해서 죄송합니다!

EXCEL 2007 버전:

VBA가 아닌 솔루션의 경우INDIRECT공식.문자열을 인수로 사용하여 셀 참조로 변환합니다.

예를들면,=0.4*INDIRECT("A1")0.4 * 해당 워크시트의 셀 A1에 있는 값을 반환합니다.

만약 세포 A1이, 예를 들어, 10이라면,=0.4*INDIRECT("A1")4를 반환합니다.

재미로, 저는 엑셀에 존재하는 왠지 모르게 숨겨진 평가 기능을 사용하는 흥미로운 기사를 발견했습니다.이 방법은 이름에 할당하고 셀에 이름을 사용하는 것입니다. 셀에서 직접 사용하면 EVERAGE()에서 오류 메시지가 표시되기 때문입니다.해봤는데 효과가 있어요!시트의 경우 여러 행에 걸쳐 복사하려는 경우 관련 이름과 함께 사용할 수 있습니다.

전문적인 솔루션을 위해 VBA 솔루션을 선호합니다.

질문에서 대체 절차 부분을 검색하고 전체 단어만 바꾸기를 사용하여 다음 VBA 절차를 사용합니다.

''
' Evaluate Formula-Text in Excel
'
Function wm_Eval(myFormula As String, ParamArray variablesAndValues() As Variant) As Variant
    Dim i As Long

    '
    ' replace strings by values
    '
    For i = LBound(variablesAndValues) To UBound(variablesAndValues) Step 2
        myFormula = RegExpReplaceWord(myFormula, variablesAndValues(i), variablesAndValues(i + 1))
    Next

    '
    ' internationalisation
    '
    myFormula = Replace(myFormula, Application.ThousandsSeparator, "")
    myFormula = Replace(myFormula, Application.DecimalSeparator, ".")
    myFormula = Replace(myFormula, Application.International(xlListSeparator), ",")

    '
    ' return value
    '
    wm_Eval = Application.Evaluate(myFormula)
End Function


''
' Replace Whole Word
'
' Purpose   : replace [strFind] with [strReplace] in [strSource]
' Comment   : [strFind] can be plain text or a regexp pattern;
'             all occurences of [strFind] are replaced
Public Function RegExpReplaceWord(ByVal strSource As String, _
ByVal strFind As String, _
ByVal strReplace As String) As String

    ' early binding requires reference to Microsoft VBScript
    ' Regular Expressions:
    ' with late binding, no reference needed:
    Dim re As Object
    Set re = CreateObject("VBScript.RegExp")

    re.Global = True
    're.IgnoreCase = True ' <-- case insensitve
    re.Pattern = "\b" & strFind & "\b"
    RegExpReplaceWord = re.Replace(strSource, strReplace)
    Set re = Nothing
End Function

Excel 시트에서 이 절차의 용도는 다음과 같습니다.

엑셀시트에서의 용법.

제 생각에 최고의 솔루션은 다음 링크에 있습니다. http://www.myonlinetraininghub.com/excel-factor-12-secret-evaluate-function

다음은 요약입니다.

  1. 에 "A1"을 합니다.1,
  2. 에 "A2"를 합니다.2,
  3. 에 "A3"를 합니다.+,
  4. 이지 범만듭다니위를된으로 =Evaluate(A1 & A3 & A2)이름이 지정된 범위를 만드는 동안 필드를 참조합니다.범위를 " "testEval"이라고
  5. 에 "A4"를 합니다.=testEval,

셀 A4의 값은 3이어야 합니다.

사항
프로그래밍/VBA가 필요하지 않습니다.
저는 엑셀 2013에서 이것을 했고 그것은 작동합니다.

자, 우리에게 칼럼을 주자.E문자열을 .

= " = " & D7

D7세포는 더 복잡한 공식으로 구성되며, 최종적으로 원하는 결과를 구성합니다.

= 3.02 * 1024 * 1024 * 1024

그래서 모든 거대한 열들이 존재합니다.

때 - 셀을 기준). - RMB 기준).
에 예를들어, 가운열에까장가열라고 말합니다.G각 행에서 다음 Enter 키를 눌러 F2 키를 누릅니다.
하지만, 엄청난 양의 행의 경우에는 불가능합니다...

그래서 VBA는 없습니다. 추가 공식 없음. F&R 없음

실수도, 오타도 없고 대신 멍청한 기계적 행동만 할 뿐

포드 컨베이어 위에 있는 것처럼.몇 초 에:

  1. [관련된 모든 열이 "일반" 형식이라고 가정합니다.]
  2. 메모장 열기++
  3. 체전 열택 선택D
  4. Ctrl+C
  5. NPP의 Ctrl+V
  6. NPP의 Ctrl+A
  7. 첫 합니다.G1
  8. Ctrl+V
  9. 맛있게 드세요 :).

여기 엑셀 2019. EVALUATE유효하지 않습니다.

평가가 올바르지 않습니다.

이름이 지정된 범위를 만들면 다음과 같이 작동합니다.
이름 편집 대화 상자

그러나 이 경우에는 절대적인 참조를 제공합니다. 이는 좋지 않습니다.

  1. 우리는 공식을 재사용하고자 할 때마다 수정해야 할 것입니다.
  2. A1의 값이 변경되어도 평가된 결과는 변경되지 않습니다.

솔루션:

=EVALUATE(GET.CELL(5,OFFSET(INDIRECT("RC",FALSE),0,-1)))

이름 편집 대화 상자

결과 EVAL_

VBA가 아닌 최상의 방법은 TEXT 공식을 사용하는 것입니다.문자열을 인수로 사용하여 값으로 변환합니다.

예를 들어 =TEXT("0.4*A1","#")는 0.4 * 해당 워크시트의 셀 A1에 있는 값을 반환합니다.

언급URL : https://stackoverflow.com/questions/4471884/how-to-turn-a-string-formula-into-a-real-formula

반응형