"datatable"이라는 소스 테이블이있는 경우이 수식을 여분의 시트에 모든 셀 (인쇄 된 데이터가 나타나는 위치)에 넣으십시오.
=OFFSET(datatable!$A$2;(ROW()-2)+((COLUMN()-1-MOD(COLUMN()-1;3))/3*4);MOD(COLUMN()-1;3))
( 위의 내용은 독일어에서 영어로 번역되었습니다. 테스트 된 독일어 공식은 다음과 같습니다. =BEREICH.VERSCHIEBEN(datatable!$A$2;(ZEILE()-2)+((SPALTE()-1-REST(SPALTE()-1;3))/3*4);REST(SPALTE()-1;3))
)
예상 결과:
이것은 "datatable"시트의 내용을 변형시킵니다 :
A1 B1 C1
A2 B2 C2
A3 B3 C3
A4 B4 C4
A5 B5 C5
A6 B6 C6
...
으로:
A1 B1 C1 A5 B5 C5 ...
A2 B2 C2 A6 B6 C6 ...
A3 B3 C3 ...
A4 B4 C4 ...
설명:
기초:
예를 들어 오른쪽에서 3 행 아래, 4 열을 OFFSET( datatable!$A$2; 3; 4 )
기준으로 셀을 참조합니다 $A$2
.
ROW()
및 COLUMN()
현재 시트에서 현재 셀의 위치 (예를 나타내는 숫자이다 $A$1
= 1 열 / 행 1 $C$2
= 3 열 / 행 2).
은 (-1)
우리가 오프셋을 사용하고 있기 때문에 어디서나 필요하고, 첫 번째 행과 열은 1이지만, 우리는 첫 번째 참조 된 셀이 원하는 $A$2
,하지 $A$2
에 1을 더한 오프셋.
는 (ROW()-2)
출력 - / 인쇄 테이블의 헤드 라인 (그것은 마땅한 -1 당신이 헤드 라인이없는 경우)입니다.
$A$2
소스 "datatable"의 헤드 라인을위한 것입니다. 헤드 라인이 없으면 $A$1
(대신 $A$2
)을 참조해야합니다 .
세부:
세 번째 매개 변수 OFFSET(...;...;MOD(COLUMN()-1;3))
는 열 오프셋 이며, 항상 소스 "datatable"의 처음 3 개 열 중 하나를 참조합니다.
그것은 $A$2
플러스 열 오프셋 0, 1, 2, 0, 1, 2, 0, 1, 2, ...입니다.
두 번째 매개 변수 OFFSET(...; (ROW()-2) + ((COLUMN()-1-MOD(COLUMN()-1;3))/3*4) ;...)
에서 행 오프셋을 선택합니다 .
기본적으로 수학은 y + x * 4입니다.
4는 표시하려는 행 수입니다.
3은 "datatable"소스의 열 수입니다.
x는 열로 만들어지고 모듈로 3
COLUMN()-1
은 0, 1, 2, 3 등입니다.
MOD(COLUMN()-1;3)
0, 1, 2, 0, 1, 2, 0, 1, 2, ...입니다
COLUMN()-1-MOD(COLUMN()-1;3)
0, 3, 6, 9, ... 등이되며 3 열마다 값이 변경됩니다.
3으로 나누면 0, 1, 2, 3, ...이
됩니다. 4를 곱하면 0, 4, 8, 12, ...가됩니다.
( Modulo에 대한 설명은 MOD()
엑셀 도움말 또는 wikipedia의 모듈로 연산을 참조하십시오 )
(기본 아이디어를위한 Jake Kacher에게 감사합니다)