절대 셀 참조를 Excel에서 상대 참조로 복사하여 붙여 넣는 방법


4

Excel (2007)에서 절대 참조가 포함 된 셀 (예 : $A$3 )가 복사되면 절대 참조는 동일하게 유지됩니다. 이는 의도적으로 설계된 것이므로 절대 참조를 사용하는 이유입니다.

문제 - 그러나 때로는 블록 (절대 참조 및 상대 참조도 포함)의 셀을 가져 와서 새 블록에 대해 절대 참조가 올바르게 이동 된 상태로 붙여 넣습니다. 즉, 절대 참조가 복사 할 때 상대 참조처럼 작동하지만 최종 복사 된 결과에서 절대 참조가되도록해야합니다.

예 -- 예제 스크린 샷에서 A2 : B3 블록을 아래쪽으로 복사하려고합니다. 복사 할 때 기본적으로 B3에 수식을 넣고 싶습니다 ( =$A$3 )가 왼쪽의 셀을 참조하도록 변경되었습니다. 예를 들어 =$A$11 스크린 샷 하단과 마찬가지로 B11에 복사됩니다.

example in Excel

해결 방법 - 나는 이것을하기위한 해결 방법을 발견했다 :

  1. 전체 워크 시트 (ctrl-drag 워크 시트 탭을 새 위치로 복사)의 복사본 만들기
  2. 그때 절단 (ctrl-X) 새 워크 시트의 셀 관련 블록
  3. 원본 워크 시트에 붙여 넣기 (ctrl-v).
  4. 마지막으로 새 임시 워크 시트를 삭제합니다 (마우스 오른쪽 버튼 워크 시트 탭 및 삭제).

의문 -- 그러나 이것은 내 취향에 너무 많은 행동이다. 더 쉬운 방법이 있습니까 (아마도 일부 붙여 넣기 특수 숨겨진 옵션)?


두 번째 $ 기호를 지우지 않는 이유는 무엇입니까? 셀 B3 = $ A $ 3 대신 $ A3을 만듭니다.
Kevin Anthony Oppegaard Rose

@ 케빈 : 이것은 단지 장난감의 예입니다. 실제 사례 (몇 달 전)에는 20x20 블록과 같은 것이 있었는데, 고정 된 위치 (블록과 관련이 있음)에있는 몇 개의 '구성'셀이있었습니다. 블록을 구성하려면 (즉, 단일 행에서 20 행으로 확장) 절대 셀 참조를 사용하는 것이 가장 편리합니다. 그러나 블록의 사본을 만들 때 (구성 셀의 다른 값으로 결과를 보려면) 어떤 방향, 절대 세포가 내 게시물에 설명 된 문제로 이어진다.
Rabarberski

내 추측에 따르면 셀에 $ A3 입력을 시도한 다음 복사 한 다음 대상 셀에만 수식을 붙여 넣으면 .....
Darius

답변:


2

당신은 항상 매크로를 작성할 수 있습니다. excel은 여러분이 사용할 수있는 정말 멋진 매크로 기록 도구를 가지고 있습니다. 그리고 필요에 따라 프로그램을 실행하십시오.

dim firstLetter as String 
dim secondLetter as String 
dim firstNumber as integer 
dim secondNumber as integer 
dim firstReference as string 
dim secondReference as string 
dim contents as string 
firstLetter = inputbox("Where's the first column? (it's letter)") 
firstNumber = inputbox("And what's the first row? (just the number)") 
secondLetter = inputbox("What column is this going to be moved to? (the letter only.)") 
secondNumber = inputbox("And what row? (the number.)") 
contents = range(firstletter + cstr(firstnumber)).formula 
range(secondletter + cstr(secondnumber)).formula = contents 

이것은 기록 가능한 프로세스가 아닙니다. 분명히 뭔가를 자동화하기 위해 항상 사용자 정의 매크로를 작성할 수 있지만 샘플 코드를 제공하는 것이 더 도움이 될 것입니다.
lori_m

어둡게 firstLetter로 문자열 dim dimLetter로 문자열 어둡게 firstNumber로 정수 어둡게 secondNumber로 정수 어둡게 firstReference 문자열로 어둡게 firstReference = inputbox ( "첫 번째 열은 어디입니까?") firstNumber = inputbox ( "And And secondLumber = inputbox ( "어떤 열이 이동 될까요? (문자 만.)") secondNumber = inputbox ( "어떤 행? (숫자.)" ) 내용 = 범위 (firstletter + cstr (firstnumber)). 수식 범위 (secondletter + cstr (secondnumber)). 수식 = 내용
SUPER MARIO BROTHERS

오, 좋은 메모는 메모장에서 전혀 옮기지 않았다. 하지만 그래, 작동 할 수도있는 것 같은데 - 조금 놀아 봐야 할 수도 있습니다.하지만 '수식'은 셀의 수식입니다. r1c1 일은 그렇지만 우리가 원하지 않는 상대 참조를 유지합니다. 해야 할 것.
SUPER MARIO BROTHERS

게시물에 코드를 삽입하려고 시도했지만 코드를 편집 할 수 있습니다. 희망이 도움이
lori_m

1

내가 사용한 작품은 다음과 같습니다.

  • 붙여 넣기를 원하는 셀 블록을 만듭니다. 여기에는 절대 참조 번호가 모두 포함됩니다 (예를 들어 블록에 '원본 블록'이라고 쓰여 있음).

  • 마지막으로 원하는 스타일 목록을 복사하여 붙여 넣으려는 워크 시트를 만듭니다. 그래서 당신의 예를 보완하기 위해, 당신은 'Original Block'을 사용하여 그것을 최종 작업 표 레이아웃이 될 말보다 10 배 아래에 복사 할 것입니다. (원래 블록에서 셀을 참조하는 절대 셀에 여전히 동일한 문제가 있음을 알 수 있습니다.)

  • 전체 워크 시트와 절단 새 워크 시트로 복사

그런 다음 새롭고 향상된 시트에서 원하는 모든 절대 값과 관련된 셀이 모두 연결되었음을 알 수 있습니다.

행운을 빕니다 :)


1

중복 작업을 발견했습니다.

문제점 : 시작 셀 B2에서 선택을 복제하여 시작 셀 P2에 배치하십시오.

  1. 새 시트를 만듭니다.
  2. 원본 시트 복사에서 복사하여 동일한 시작 셀의 새 시트에 붙여 넣으려는 것 (선택한 사각형이 B2부터 시작하여 새 시트 B2에 붙여 넣기)
  3. 새로운 시작 셀의 새 시트에서 해당 선택 물을 이동하십시오 (시작 셀 P2로 이동하십시오).
  4. 선택 항목 복사.
  5. 오른쪽 새 시작 셀 (P2)의 원본 시트에 선택 영역을 붙여 넣습니다.

0

잘라내어 새 워크 시트에서 붙여 넣기 단계를 따르려고하면 상대 참조를 포함하여 새 위치로 복사 할 때 수식의 모든 참조가 고정되어 있습니다. 실제로 Excel 2010에서는 수식을 잘라내어 붙여 넣은 후 첫 번째 행과 열에 이전 시트에 대한 링크가 있지만 다른 행과 열은 버그처럼 보이는 새 시트를 참조합니다.

모든 참조를 동일하게 유지하는 수식 블록을 복사하려면 Ctrl +`(역 인용 부호)를 눌러 수식을 표시 한 다음 클립 보드 작업 창에서 아이콘을 클릭하여 복사하여 붙여 넣을 수 있습니다 (클립 보드 섹션의 작은 화살표를 사용하여 활성화). 홈 탭). 이것이 성취하려는 것이 아니라면, 간단한 예가 도움이 될 것입니다.


일러스트레이션이있는 예제를 추가했습니다. 희망은 그것이 명확하게한다.
Rabarberski

분명하지만 해결 방법으로는 그 결과를 얻을 수 없습니다. 나는 이것을 할 수있는 쉬운 방법이 없다고 생각합니다. 즉, 절대 참조를 바꾸려면 $ A $ 3을 $ A $ 11로 바꿉니다.
lori_m

이상한 당신은 그 문제가 있습니다. 광산 (Excel 2007)이 잘 작동합니다.
Rabarberski

0

나는이 매크로 (Personal.xlsb에 저장되고 바로 가기 키에 바인딩 됨)를 사용하여 복사하기 전에 절대 참조를 변환하려고 시도했다.

Sub ToAbsolute()
 Dim c As Variant
    Application.ScreenUpdating = False
    For Each c In Selection
        If (Not IsEmpty(c.Value)) Then
            c.Value = Application.ConvertFormula(c.Formula, xlA1, , xlAbsolute)
        End If
    Next c
    Application.ScreenUpdating = True
End Sub

Sub ToRelative()
 Dim c As Variant
    Application.ScreenUpdating = False
    For Each c In Selection
        If (Not IsEmpty(c.Value)) Then
            c.Value = Application.ConvertFormula(c.Formula, xlA1, , xlRelative, c)
        End If
    Next c
    Application.ScreenUpdating = True
End Sub

0

다음은 덜 복잡하게 작동하여 자신의 매크로를 작성하고 최종 결과를 얻습니다.

예, Absolute 셀 참조를 사용하지 않지만 OP의 예에서와 같이 필요하지는 않습니다.

복사 할 범위 선택

enter image description here

그런 다음 붙여 넣기의 드롭 다운 메뉴에서 여기에 표시된대로 공식 옵션을 선택하십시오.

enter image description here

이것은 나와 Excel 2007 및 2010에서 작동합니다. Enjoy :)


1
나를 위해 작동하지 않습니다 (Excel 2007). 나는 그것이 이유라고 생각한다. 등장하다 당신을 위해 일하는 것은 공식에 있기 때문입니다. =$A7 열 (A)만이 절대적이지만 행 (7)은 상대적입니다. 사용하는 경우 =$A$7 당신은 그것이 작동하지 않는 것을 볼 수 있습니다. 필자의 원래 예제에서는 실제로 중요한 행 참조입니다.
Rabarberski

질문은, 정말로, 정말입니까 (정말로 : D)는 절대적인 참조가 필요합니다. 나는 자신이 두 번째 칼럼이 절대 참조를 복사하기를 원한다는 것을 발견했다. 필자가 열 또는 행에 $로 얻을 수있는 것으로 보인다.
Darius

기울임 꼴 문장과 관련하여 경우에 따라 절대 참조가 필요합니다. 예를 들어, 블록을 왼쪽이나 오른쪽으로 복사하려고한다고 가정하지만, 빠른 채우기를 위해 절대 참조가 블록 내에있는 것으로 원할 수도 있습니다.
blakeoft

0

이 문제를 해결하는 한 가지 방법은 상대 참조만을 사용하고 절대 참조와 같이 상대 참조를 복사하는 방법은 아래 절차를 따르는 것입니다. 이 답변의 출처에는 다음이 포함됩니다. 스택 오버플로 이 페이지 .

  1. Excel을 수식보기 모드로 전환하십시오. 이렇게하는 가장 쉬운 방법은 Ctrl +`를 누르는 것입니다. (그 문자는 "거꾸로 아포스트로피"이며 일반적으로 ~ (틸데)가있는 동일한 키에 있습니다.
  2. 복사 할 범위를 선택하십시오.
  3. Ctrl + C를 누릅니다.
  4. Windows 메모장 시작
  5. 복사 한 데이터를 메모장에 붙여 넣으려면 Ctrl + V를 누릅니다.
  6. 메모장에서 Ctrl + A를 누른 다음 Ctrl + C를 눌러 텍스트를 복사합니다 (메모장에서 Ctrl + C를 누르기 전에 Excel로 돌아가 기존 선택을 지우는 경우가 있음)
  7. Excel을 활성화하고 원하는 왼쪽 위 셀을 활성화하십시오. 수식을 붙여 넣으십시오. 그리고 복사하려는 시트가 수식보기 모드입니다.
  8. 붙여 넣으려면 Ctrl + V를 누릅니다.
  9. 수식보기 모드를 토글하려면 Ctrl +`키를 누르십시오.

0

나는 비슷한 문제가 있었다. 저는 수천 개의 수식을 가진 매우 큰 스프레드 시트를 가지고 있습니다. 일부는 절대 열과 일부는 열과 행의 절대 값을가집니다. 새로운 스프레드 시트에 복제본을 만드는 대신 동일한 워크 시트에 나란히 복제본을 만들고 싶었습니다. 모든 수식을 복사하고 Excel에서 절대 참조를 상대 참조로 처리해야했습니다.

Excel은 수식이있는 셀 범위의 왼쪽에 열을 삽입 할 때 상대 주소 인 것처럼 모든 주소를 변경합니다.

  1. 원본 시트 옆에 새 시트를 만듭니다. 이것은 최종 제품이 들어있는 시트입니다.

  2. 원본 시트로 이동하십시오. 수식을 사용하여 열을 강조 표시하십시오. 부.

  3. 새 시트로 이동하여 동일한 열을 강조 표시하십시오. 풀.

  4. 원본 시트로 이동하십시오. 범위가 넓은만큼 열 수를 삽입하십시오. 예를 들어 내 범위는 20 열입니다. 그래서 내 범위의 왼쪽에 20 개의 열을 삽입하고 모든 수식을 이동하고 모든 참조를 상대적으로 변경했습니다.

  5. 새 열을 강조 표시하십시오. 부.

  6. 새 시트로 이동하십시오. 새 시트에서 똑같은 열을 강조 표시하십시오. 풀.


0

방금 부분적인 해결 방법을 찾았습니다. OP에서 복사 한 워크 시트 및 절단 범위의 해결 방법만큼 일반적이지는 않지만 빠르게 복사해야하는 경우 훨씬 빠릅니다. 우리 모두가 정말로 원하는 것은 바로 우리가 복사하는 동안 절대 참조를 일시적으로 비활성화하는 방법입니다. $를 모두 무시할 때 붙여 넣기 할 때 alt를 누른 상태로 유지할 수있는 옵션이있을 수 있지만 붙여 넣기가 완료되면 실제로는 여전히 그대로 유지됩니다.

따라서 절대 참조가 업데이트되는 동안 셀 블록을 복사하려면 다음을 염두에 두어야합니다.

  1. 복사 할 셀 범위 강조 표시
  2. $를 여전히 유효한 참조로 만드는 문자로 "대체"하십시오.

전체 열 수로 인해 XFD #은 마지막 유효한 셀 참조입니다. 생성 된 새 참조가 셀 범위에서 실제 참조와 겹치지 않도록하십시오. 그렇지 않으면 마지막 단계에서 참조가 손상됩니다. 복사 할 셀 블록에서 절대 참조하지 않는 열에서 문자를 선택하면 수식을 손상시키지 않습니다. 예를 들어, $를 'h'로 바꾸면 $ b $ 42는 hbh42가됩니다.이 값은 여전히 ​​복사 할 수있는 유효한 참조이며 자동으로 업데이트됩니다!

  1. 마지막으로, 임시 문자 (위의 예에서 'h')를 $로 다시 변환하면 끝난 것입니다!

어떤 경우에는 $를 2 글자로 대체 해 볼 수는 있지만 문제는 여러 가지가 있으므로 실제 참조와 겹치지 않는 1 글자 대체를 찾는 것이 더 쉬울 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.