해결 M365윈도우11
수식에 iferror를 일괄적으로 넣는 방법이 있을까요?
이렇게 수식이 여러개 입력되어 있을 때.. iferror 함수를 한 번에 추가할 수 있을까요?
chatgpt는 =+ 를 찾아서 =+iferror로 바꾸면 된다고 하는데 계속 오류가 나네요 ㅠ
이렇게 수식이 여러개 입력되어 있을 때.. iferror 함수를 한 번에 추가할 수 있을까요?
chatgpt는 =+ 를 찾아서 =+iferror로 바꾸면 된다고 하는데 계속 오류가 나네요 ㅠ
댓글 5
안녕하세요~

셀수식이나 기타 다른 방법은
실제적으로 어럽다고 보입니다.
VBA로 코딩했으니
한번 적용해 보세요~
Sub IFERROR감싸기() Dim ws As Worksheet Dim rng As Range Dim cell As Range Dim f As String Set ws = ActiveSheet '// 범위 입력받기 On Error Resume Next Set rng = Application.InputBox( _ Prompt:="IFERROR로 감쌀 범위를 선택하세요:", _ Title:="범위 선택", _ Type:=8) '// Type:=8 은 Range 타입 On Error GoTo 0 '// 취소 버튼 누르면 종료 If rng Is Nothing Then MsgBox "취소되었습니다.", vbInformation Exit Sub End If '// 성능 최적화 Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False On Error GoTo ErrorHandler '// 선택한 범위의 각 셀 처리 For Each cell In rng If cell.HasFormula Then f = cell.Formula2 '// IFERROR 체크 If Not (UCase$(f) Like "=IFERROR(*") Then cell.Formula2 = "=IFERROR(" & Mid$(f, 2) & ",0)" End If End If Next cell MsgBox "완료: " & rng.Address & " 범위의 수식을 IFERROR로 감쌌습니다.", vbInformation ErrorHandler: Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True If Err.Number <> 0 Then MsgBox "오류 발생: " & Err.Description, vbCritical End If End Sub
@수메리안 님 답변 감사합니다.. 매크로밖에 방법이 없나보네요 ㅜ
범위선택후 매크로실행
'목적 : 수식을 IFERROR 함수로 처리하기 Sub WrapFormulasWithIFERROR() Dim cell As Range Dim originalFormula As String Dim formulaCells As Range On Error Resume Next ' 수식 셀이 없을 경우 오류 무시 ' 선택된 범위에서 수식이 있는 셀만 찾기 Set formulaCells = Selection.SpecialCells(xlCellTypeFormulas) On Error GoTo 0 ' 오류 처리 복원 Application.ScreenUpdating = False ' 수식 셀이 있을 경우 처리 If Not formulaCells Is Nothing Then For Each cell In formulaCells ' "="을 제거하고 앞뒤 공백과 '@'를 제거한 후 수식 추출 originalFormula = Trim(Replace(Mid(cell.Formula2, 2), "@", "")) ' 수식이 IFERROR 또는 IFNA로 시작하지 않는 경우에만 변경 If UCase(Left(originalFormula, 8)) <> "IFERROR(" And UCase(Left(originalFormula, 5)) <> "IFNA(" Then cell.Formula2 = "=IFERROR(" & Mid(cell.Formula2, 2) & ","""")" End If Next cell End If Application.ScreenUpdating = True End Sub
@마법의손 님 답변 감사합니다.. 매크로밖에 방법이 없나보네요 ㅜㅜ
E2를 기준으로 할때
H2 셀에
=SUBSTITUTE(SUBSTITUTE(FORMULATEXT(E2)&"@@","=","=IFERROR("),"@@",","&CHAR(34)&CHAR(34)&")")
(사실 변수는 E2 밖에 없어요)
저 결과를 다시 E2셀에 내용만 붙여 넣기 한 다음
F2 눌러준다음 엔터 하면 공식이 활성화 되요
저도 주로 매크로 사용하는데 저 방법도 가능하답니다.
저 방법도 간혹 써요