Excel 열의 모든 셀 앞에 =를 추가하여 분수 계산을 강제합니다.

Excel 열의 모든 셀 앞에 =를 추가하여 분수 계산을 강제합니다.

22/7, 355/113, 3927/1250 등의 형식으로 된 Excel 셀이 여러 개 있습니다.

실제 숫자 값이 계산되도록 각 셀 앞에 =를 어떻게 추가합니까?

질문에 표시된 대로 텍스트 연결을 사용합니다.열의 모든 셀 시작 부분에 텍스트 삽입작동하지 않습니다(텍스트가 추가됨).

개선 없이 셀 서식(숫자, 과학 등)을 변경해 보았습니다.

또한 A1이 22/7이면 B1 =VALUE(A1)도 작동하지 않으며 #VALUE를 얻습니다!

그렇다면 각 셀의 값을 강제로 계산하는 방법은 무엇입니까?

답변1

다음과 같은 데이터가 있다고 가정해 보겠습니다.

여기에 이미지 설명을 입력하세요

이 짧은 VBA 매크로를 실행합니다.

Sub MakeEquation()
    Dim N As Long, i As Long

    N = Cells(Rows.Count, "A").End(xlUp).Row

    For i = 1 To N
        With Cells(i, 1)
            .Formula = "=(" & .Value & ")"
        End With
    Next i
End Sub

생산할 것입니다:

여기에 이미지 설명을 입력하세요

답변2

Powershell을 사용하는 방법을 알고 있다면 Powershell을 사용하여 셀 내용을 변경할 수 있습니다. 다음 스크립트를 사용하여 example.xlsx라는 Excel 스프레드시트의 sheet1에 있는 셀 A1~A3의 값에 대해

$FilePath = 'C:\Users\Username\Documents\Example.xlsx'
# Instantiate the COM object
$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open($FilePath)
$Sheet = $Excel.WorkSheets.item("sheet1")
$Sheet.activate()

$Sheet.Range('A1:A3').NumberFormat="" 

foreach ($Cell in $Sheet.Range('A1:A3').Cells) {
 $Cell.Value2 = '=' + $Cell.Value2
 }

$WorkBook.Save()
$WorkBook.Close()
$Excel.Quit()

답변3

다음 워크시트 기능은 요청한 대로 정확하게 수행됩니다.

=LEFT(A1,FIND("/",A1)-1)/RIGHT(A1,LENGTH(A1)-FIND("/";A1))

이것이 하는 일은 분수에서 슬래시를 찾은 다음 문자열을 슬래시 앞 부분과 슬래시 뒤 부분으로 분할하는 것입니다. 그런 다음 두 부분을 나누어 소수점 이하 자릿수를 얻습니다.

답변4

다음은 댓글 링크의 첫 번째 내용과 유사합니다. 하지만 당시(2010)에 제공된 대답은 더 이상 존재하지 않는 Excel의 측면을 기반으로 한다는 점에서 "더 깔끔합니다".

나는 당신이 데이터를 계산된 결과로 바꾸고 싶다고 가정합니다. 그렇다면 다음을 수행하십시오. 그렇지 않은 경우 결과가 편리한 다른 위치에 있도록 하십시오.

도우미 열을 삽입하고 다음 수식을 입력합니다(예: B1에).

= "=" & A1

Excel에서는 더 이상 선행 문자를 1-2-3과 같은 서식 지정 문자로 간주하는 불쾌한 작업을 '수행하지 않지만 Excel에서는 "="로 텍스트 문자열을 시작하는 데 문제가 없으므로 이를 사용할 필요가 없습니다. 이것이 바로 여러분이 할 수 있는 가장 간단한 일입니다.

필요에 따라 채우거나 복사/붙여넣기하세요. 모든 수식 셀을 강조 표시하고 복사합니다. 그런 다음 A1 셀로 이동하여 Paste|Special|Values위 수식(수식이 아님)의 결과를 시작 데이터 "위에" 배치합니다. 그런 다음 도우미 열을 삭제합니다. 이제 다음과 같은 내용이 표시됩니다.

=22/7

형식을 숫자 형식으로 변경하더라도 텍스트로 처리됩니다.

모두 다시 강조 표시하고(또는 P|S|M 바로 다음에 이 작업을 수행하고 나중에 도우미 열을 삭제) Find and Replace"="를 검색하고 "="로 바꾸는 데 사용합니다...

네, 등호를 찾아 그 자체로 바꾸세요. Excel은 기꺼이 이를 수행하며 다른 많은 기술과 달리 수행한 후에는 이를 텍스트로 간주하지 않습니다. 원본 자료가 무엇인지 항상 알고 싶으시면 이렇게 놔두세요. 셀을 검사하면 항상 이 셀을 볼 수 있습니다. 예를 들어 "22/7"로 시작하는 셀은 "=" 뒤에 여전히 있기 때문입니다. 필요하지 않은 경우 모두 강조 표시하고 복사한 다음 P|S|V를 한 번 더 수행하여 계산 결과만 그대로 둡니다.

모두 완료되었습니다.

(그런데, 이것은 흔하지 않은 상황 중 하나입니다(이상하게도 전혀 이야기하지 않았습니다). 그러나 갑자기 나타나서 우리를 놀라게 합니다. 이 경우 Paste|Special|Multiply1로 연결한 결과를 출력할 수 없고 모든 것이 값으로 변경되는 것을 볼 수 있습니다. "=22/7"로 유지되며 텍스트처럼 셀의 왼쪽 가장자리에 로 각각 직접 변경해야 합니다. F2-Enter)

이 모든 것은 멋진 작은 매크로가 "황금 표준"이라는 것을 의미합니다. 빠르고 쉽게 새로운 자료에 사용하기 위해 버튼에 할당할 수 있습니다. 모든 것이 좋습니다. 사용이 허용되는 한. 그러나 이는 스프레드시트를 작성한 후에 사용자가 수행하는 작업이 아니라 스프레드시트 작성자인 귀하를 위한 관리 작업처럼 보입니다. 따라서 대부분의 조직이 이에 대해 능숙하다고 생각할 것입니다. Gary's Student는 매우 간단해 보입니다. Antony는 더 복잡해 보이지만 매우 간단해 보입니다.

그리고... 문제가 생기지는 않도록... 하지만 스프레드시트를 열어 놓은 동안 이와 같은 관리 작업을 위한 매크로를 언제든지 추가하고 사용한 다음 삭제하거나 .xlsx 형식으로 저장하여 Excel에서 사용할 수 있습니다. 매크로를 제거합니다. 그냥 말이에요...

내가 언급한 연결된 질문에서 EVALUATE()사용하는 것이 재미있을 것입니다. 하지만 위의 접근 방식보다 약간 더 어려운 여러 가지 작업을 수행해야 하므로 더 문제가 됩니다.

나는 Michthan이 제공하는 "분리했다가 다시 합치는" 접근 방식을 권장하지 않습니다. 왜냐하면 문자 그대로 모든 것을 나누고 슬래시를 사용하여 표시하는 것보다 데이터가 더 관련될 수 있기 때문입니다. 그렇다면 지금 또는 미래에 가능한 모든 상황을 처리하기 위해 해당 공식이 찾는 내용을 확장해야 한다는 것을 알게 될 것입니다. 이 상황에서는 문제가 가장 작지 않을 수도 있지만, 이러한 문제를 방지할 수 있는 쉬운 솔루션이 있다면 대신 사용하는 것은 어떨까요? 즉, 이러한 접근 방식도 효과가 있을 것이며 향후 데이터가 어떻게 전달될지에 따라 필요할 수도 있습니다.

(그리고 이러한 답변은 모두가 혜택을 볼 수 있기 때문에 다른 사람이 이미 더 복잡한 데이터 세트를 갖고 있고 모든 기반을 다루기 위한 워크로드가 부담스럽더라도 해당 접근 방식이 유용하다고 생각할 수 있습니다.)

관련 정보