programing

대상 셀에서 다른 셀의 공식을 가져오는 중

newstyles 2023. 7. 3. 22:37

대상 셀에서 다른 셀의 공식을 가져오는 중

어떻게 한 셀이 VBA를 사용하지 않고 다른 셀의 공식을 텍스트로 얻을 수 있습니까?저는 이 질문이 이미 여러 번 제기되었고 항상 VBA로 사용자 정의 함수를 작성하는 것이 답이라는 것을 알 수 있습니다.

하지만 2006년에 비 VBA 솔루션을 찾았다고 주장하는 게시물을 발견했는데 해당 게시물에 제공된 링크가 이미 끊어졌습니다.

=FormulaText(Reference)속임수를 쓸 것

VBA 없이 이것을 하는 좋은 방법이 있습니다.XL4 매크로를 사용합니다(이것들은 매크로이지만, 요청하신 대로 VBA는 아닙니다).

그림 1을 참조하여, 셀 A2:A4에는 일반적인 공식이 포함되어 있습니다.

enter image description here

  1. 수식 -> 이름 정의로 이동하여 셀 A6:B8에 표시된 정보로 두 개의 명명된 범위(그림 2 참조)를 정의했습니다.

    enter image description here

  2. 셀 B2 입력=FormulaAsText그러면 셀 A2의 수식이 텍스트로 검색됩니다.

    설명:명명된 범위FormulaAsText사용하다=GET.CELL(info_type,reference)이 경우에는,ìnfo_type = 6공식을 검색합니다.reference = OFFSET(INDIRECT("RC",FALSE),0,-1)공식이 사용된 셀에서 0 행과 -1 열 간격띄우기가 있는 셀을 사용합니다.

  3. B2를 복사하여 B3:B4에 붙여넣습니다.A3에 공식이 표시됩니다.A4. 셀 A4는 워크시트가 기능하는 것을 보여줍니다.CELL값만 검색하고 공식은 검색하지 않습니다(와 반대).GET.CELL).

  4. 부터FormulaAsText셀에서 전류의 고정 오프셋(0,-1)에 있는 공식을 가져옵니다. 다른 범위를 정의했습니다.FormulaAsText2워크시트 자체에서 읽은 오프셋(행, 콜)을 사용합니다.셀 D2:D4는 다음을 포함합니다.=FormulaAsText2따라서, 셀 D2는 셀 B3의 내용을 보여줍니다.=OffSET(D2,1,-2)), 즉FormulaAsText셀 D3:D4는 그들 자신의 내용을 보여줍니다.이것은 약간의 유연성을 더해줍니다.YMMV.

PS1: 본질은 http://www.mrexcel.com/forum/excel-questions/20611-info-only-get-cell-arguments.html 에서 가져왔습니다.

PS2: 팀 윌리엄스는 논평에서 "오래된 XLM"을 언급했습니다.GET.FORMULA()이 답변은 관련이 있을 수 있습니다(동일하지 않습니다, 이 답변은 다음을 사용하므로).GET.CELL()).

PS3: 간단한 VBA 솔루션(예: http://dmcritchie.mvps.org/excel/formula.htm )이 제공됩니다.


편집: 이 좋은 답변을 보완하여 워크시트 기능Excel 2013 이상에서 사용할 수 있습니다.

이 제안은 공식 블록을 검색하여 새 스프레드시트로 전송한 후 다시 실행하려는 사용자에게 유용할 수 있습니다.Excels FORMATXT 함수는 공식을 선택하는 데 유용하지만 사용할 수 없는 텍스트 문자열로 남아 있습니다.완전히 작동하는 공식으로 되돌리려면 문자열 문자를 제거하기 위해 각 공식을 개별적으로 편집해야 하지만 더 큰 블록에 대한 바로 가기가 있습니다.필요한 수식을 텍스트로 사용하는 위치로 이동합니다(즉, FUMATEXT를 사용한 후 복사 및 (값만) 붙여넣기를 완료했습니다).다음 단계에서는 변환할 모든 셀을 강조 표시한 다음 [Text-To-Columns] 메뉴 옵션({Data} bar)으로 이동합니다.'제한됨'을 선택할 수 있지만, 다음 화면에서는 공식에 표시되는 모든 표시를 선택 취소해야 합니다.그럼 '끝'.Excel은 공식을 포함하는 셀을 자동으로 분석해야 하며 이제 다시 작동해야 합니다.

이렇게 하는 방법이 있습니다.예를 들어 날짜가 표시된 테이블이 있습니다.날짜는 시트에서 가져온 것입니다!G91. 제 테이블에는 시트 이름이 표시된 열도 있었습니다.저는 제 테이블에 두 개의 열을 더 추가했습니다.G가 알파벳의 일곱 번째 문자이기 때문에 첫 번째 열에는 숫자 7을 반환하는 열(Sheet!g91)이 있습니다.그런 다음 워크북의 다른 표를 사용하여 숫자를 문자(G)로 변환했습니다.제가 추가한 두 번째 열에는 공식 행(시트)을 만들었습니다.G91), 숫자 91을 반환합니다.참고: 행과 열은 워크북을 계산할 때마다 다시 계산되는 휘발성 공식으로 나타날 수 있습니다.

저는 이 게시물의 첫머리에 언급된 날짜 셀의 공식 내용을 보여줄 다른 열을 원했습니다.다음 문자열 함수를 포함했습니다(CONCATENATE를 사용할 수도 있습니다).

& AJ9 & "!" & AM9 & AN9

앰퍼샌드로 구분된 항목은 함께 끈으로 묶입니다(즉, 연결됨).이 예에서 AJ9는 시트 이름을 포함하고, AM9는 열 문자를 포함하며, AN9는 행 번호를 포함합니다.

이제 시트 이름과 셀 참조를 반영하도록 내용을 동적으로 업데이트하는 열이 있습니다.내 워크북 셀의 결과는

=시트! G91.

그럴수는 없어요.이는 일반 Excel 사용자가 원하지 않는 것을 실수로 얻지 못하도록 하기 위한 설계 선택일 가능성이 높습니다.

당신이 읽고 있는 것은 맞습니다 - UDF를 작성하는 것이 당신이 원하는 해결책입니다.

언급URL : https://stackoverflow.com/questions/9122046/getting-formula-of-another-cell-in-target-cell