
수식에서 한 셀을 변경할 때의 효과를 차트로 표시하면서 표에 사용하고 싶은 복잡한 수식이 있습니다.
=($E$9+J2)-((($B$9+J2)+($B$23*200*$B$15)+(1E+99-1)*(($B$9+J2)*(1.1+(1-$B$23)*(0.75+($B$22*$B$15*0.4))*$B$15)+($B$23*200*$B$15)+$B$23*(FLOOR.MATH(1E+99/3)*200*$B$15/MAX(1,1E+99-1))))*$B$12/1E+99)*($E$9+J2)/((($E$9+J2)+($E$23*200*$E$15)+(1E+99-1)*(($E$9+J2)*(1.1+(1-$E$23)*(0.75+($E$22*$E$15*0.4))*$E$15)+($E$23*200*$E$15)+$E$23*(FLOOR.MATH(1E+99/3)*200*$E$15/MAX(1,1E+99-1))))*$E$12/1E+99)
보시다시피 대체를 사용하여 단순화하려고 시도한 몇 가지 반복 기능이 있습니다.
=($E$9+J2)-SUBSTITUTE($B$29,$B$9,($B$9+J2))*$E$9/SUBSTITUTE($E$29,$E$9,($E$9+J2))
대체가 실제로 변환하기 때문에 이것은 작동하지 않습니다.결과함수 자체를 변환하는 대신 함수를 문자열로 변환하고 인스턴스를 검색합니다.
컴퓨터 언어로 프로그래밍하는 경우 다른 인수를 사용하여 메서드를 간단히 호출할 수 있지만 Excel이 이를 수행할 수 있는지는 확실하지 않습니다.
====
이 "단순화된" 스프레드시트의 과제를 설명하기 위해 두 가지 공식이 있습니다.
| A | B | C |
1 | 1 101 202
2 | 100
셀 B1에는 다음 수식이 있습니다.
=A1+A2
셀 C1에는 다음 공식이 있습니다.
=SUBSTITUTE(B1,A1,A1*2)
셀 C1을 202가 아닌 102로 만들고 싶습니다. 결과 문자열 대신 수식에서 A1의 각 인스턴스를 대체할 수 있는 방법이 있습니까?
답변1
귀하의 의견에 표시된 내용을 기반으로 귀하가 원하는 것에 가장 가까운 근사치는 다음과 같을 것이라고 생각합니다.
=LET(x,A1*2,y,A2,x+y)
.
B2에서 수식을 구문 분석해야 하는 경우 VBA에서 수식 파서를 작성해야 할 수 있습니다. 그러나 전체 수식을 VBA UDF로 작성하는 것이 더 간단할 수도 있습니다.
참고: LET
최신 버전의 Excel O365에서만 사용할 수 있습니다.