먼저 이것보다 아주 쉬운 방법이 있다면 알려주세요ㅠㅠ
찾다가 도저히 안되서 제가 꼼수로 생각한 방법 이거든요...
보통,엑셀자동채우기로안되는다른시트의셀값가져오기feat등차수열점화식클리앙 붙여넣는 시트의 셀에 ='A시트'!A1 입력하고 복사해서 연속적인 셀에 붙여넣으면
='A시트'!A2, ='A시트'!A3, ...으로 자동으로 채워주는 편리한 기능이 있는데 이게 도움되지 않는 경우가 있습니다.
바로 참조해야 할 셀의 간격이 다른 경우입니다. 이해하기 쉽게 아래의 그림으로 설명 드리겠습니다.
'1월 보고용'시트의 해당 일에 맞는 합계를 띄엄띄엄하게 있는 '1월 백데이터'시트에서 가져와야 하는데요.
'1월 보고용' 시트의 B2, B6, B10, B14에 각각 '1월 백데이터' 시트의 D5, D10, D15, D20값이 들어가야 한다는 거죠.
그런데 무작정 붙여넣게 된다면 아래 그림처럼 D5, D10, D15, D20값이 아닌
'1월 보고용'시트 셀 위치기준으로 D5, D9, D13, D17값이 자동으로 채워지게 됩니다.
이걸 어떻게 해야하나 싶다가
'1월 보고용'시트에서 행이 2일때, 참조 시트 행에서는 5
'1월 보고용'시트에서 행이 6일때, 참조 시트 행에서는 10
'1월 보고용'시트에서 행이 10일때, 참조 시트 행에서는 15 ....
이렇게 연속하는 두 항의 차이가 모두 일정한 등차수열이 보이니, 등차수열의 관계를 나타내는 점화식으로 풀어보자라는 생각을 하게되었습니다.
a_(4n+2)=5(n+1)에 n=(k-2)/4를 대입하면, a_k=5(k/4+1/2)로 나오게 되고 깔끔하게 정리하면
위와 같은 점화식을 얻을 수 있습니다.
이 식을 엑셀에서 참조 값 반환하는 함수 인, INDIRECT 함수를 아래와 같이 이용해서 각 해당하는 셀값에 붙여넣습니다.
=INDIRECT("1월백데이터!D"&5*(ROW()+2)/4)
그러면 아래와 같이 올바른 값으로 반환되는 것을 볼 수 있습니다.
이상으로 설명을 마칩니다.
p.s. 고2때 배웠던 내용을 회사에서 써먹을 줄은 꿈에도 몰랐네요ㅋㅋ
'모로가도 서울만 가면 된다'라는 말이 정말 공감되는 하루였습니다
봐주셔서 감사합니다!