내 Excel 시트에는 매우 얇지 만 많은 선 (> 500)이있는 3 개의 열 A, B, C가 있습니다. 이제 이것을 인쇄하면 거의 빈 페이지가 10 페이지가됩니다. 각 페이지의 왼쪽 테두리에만이 세 열이 표시됩니다.
내가하고 싶은 것은 전체 시트를 여러 열 레이아웃으로 인쇄하는 것입니다. 페이지 당 2 개 또는 3 개의 열이면 충분합니다. 현재 Excel에서 값을 복사하여 Word 문서에 삽입 한 다음 Word의 다중 열 레이아웃 기능을 사용 하여이 작업을 수행하고 있습니다. Excel에서 직접 달성 할 수있는 방법이 없습니까?
내 문제를 명확히하려면 : 현재 내 페이지는 다음과 같습니다
A B C
A B C
A B C
A B C
. . .
그러나 내가 원하는 것은 이것입니다.
A B C A B C A B C
A B C A B C A B C
A B C A B C A B C
. . . . . . . . .
답변
Excel이 그렇게 할 수 있다고 생각하지 않습니다. 가능한 해결 방법은 Microsoft Word를 사용하고 열을 스 네이 킹하는 것입니다. 열 을 스 네이 핑하여 더 적은 페이지를 사용하는 방법
MS Word를 사용하여 열 뱀 (#msword)
나중에 설명하는 Excel 매크로에 대화 상자를 넣지 않았기 때문에 한 번 사용하는 것이 가장 쉬운 방법 일 것입니다.
- Excel 스프레드 시트에서 열을 선택하고 복사하십시오.
- Word에 붙여 넣으려면 몇 분 정도 걸립니다.
- 표 맨 위에서 반복 할 행을 선택한 다음 Word에서 표-> 행을 반복하여 표시하십시오.
- 앵커를 사용하거나 테이블에서 셀을 선택한 다음 테이블-> 선택-> 테이블을 사용하여 전체 테이블을 선택하십시오.
- 게재 위치를보다 세밀하게 제어하려면 열 버튼 또는 형식-> 열을 사용하여 행 수를 나타냅니다.
이 예제는 잘 작동합니다. 이 게시물은 다른 가능성도 제공합니다.
답변
“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에게 감사합니다)
답변
간단한 공식을 사용할 수 있습니다.
=OFFSET(Sheet1!$A$1,(ROW()-2)*5+COLUMN(),0)
데이터가 5 열로 수평으로 흐르게합니다.
그런 다음 페이지 크기를 선택하고 각 페이지의 첫 번째 행 등을 인쇄 할 수 있습니다.
간단하고 깔끔하며 VBA가 필요하지 않습니다.
답변
내가 찾은 가장 쉬운 방법은 새 워크 시트를 만들고 수동으로 별도의 열로 분리 된 테이블을 다시 만드는 것입니다.
예 : A1 =Sheet1!A1
B1 =Sheet1!B1
C1 =Sheet1!C1
D1 공백 (분배기 열의 경우)
그런 다음 E1 =Sheet1!E51
F1 =Sheet1!B51
G1 =Sheet1!C51
그리고 이것을 50 행 이상 복사하십시오. 그런 다음 단일 열 100 행 테이블을 2 열 50 행 테이블로 바꿉니다. 필요에 맞게 조정하십시오.
물론 이것은 수동이며 행 수는 동일하게 유지됩니다. 원래 테이블의 행 수와 원하는 열 수에서 필요한 행 수를 동적으로 계산하는 것은 어렵지 않습니다. 유일한 문제는 원본 테이블이 새 시트의 열로 분리 될 때 단일 페이지에 맞는 것 이상으로 확장되는 경우입니다.
답변
Adobe Indesign이있는 경우 Excel 파일을 파일에 넣고이 레이아웃을 쉽게 만들 수 있습니다.