한 시트에서 다른 시트로 n 번째 줄마다 복사
1 열 700 행이있는 Excel 스프레드 시트가 있습니다. 나는 모든 일곱 번째 줄에 관심이 있습니다. 내가 관심있는 각 행 사이에 6 행을 포함하지 않습니다. 그래서 내 해결책은 다른 시트를 만들고 원하는 각 셀에 대한 참조를 지정하는 것이 었습니다.
=sheet1!a1
=sheet1!a8
=sheet1!a15
하지만 저는이 공식을 입력하고 싶지 않습니다 ...`100 번. 세 가지를 선택하고 상자를 드래그하면 내가 원하는 일을 찾을 수 없습니다.
제출 우아하고 수행하는 방법에 대한 아이디어가 있습니까?
새 시트의 A1에 다음을 입력하십시오.
=OFFSET(Sheet1!$A$1,(ROW()-1)*7,0)
... 그리고 복사합니다. 행 1이 아닌 다른 곳에서 시작하는 경우 ROW ()를 ROW (A1) 또는 행 1의 다른 셀로 변경 한 다음 다시 복사하십시오.
n 번째 줄을 여러 열로 비용 청구 다음 공식을 사용하십시오.
=OFFSET(Sheet1!A$1,(ROW()-1)*7,0)
이것도 바로 복사 할 수 있습니다.
7 번째 행마다 추출해야하는 경우 열 "A"앞에 열을 "삽입"합니다. 그런 다음 (1 행에 머리글 행이 가정) 2,3,4,5,6,7,8 행에 1,2,3,4,5,6,7 숫자를 입력합니다. 1,2,3,4,5,6,7을 강조 표시하고 해당 블록을 시트 끝에 넣습니다 (700 행 가치). 결과는 1,23,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7 ……입니다. 이제 "A"열에서 오름차순으로 데이터를 정렬합니다. 모두 나중에는 모든 1이 시리즈의 첫 번째 항목이되고 7이 7 번째 항목이됩니다.
제 생각에는 질문에 대한 답변이 너무 도움말입니다. 다음은 두 가지 다른 접근 방식과 완전한 예제로 더 일반적인 것입니다.
OFFSET
방법
OFFSET
3 개의 필수 인수를 사용합니다. 첫 번째는 또는 특정 셀입니다. 다음 두 개는 내부 할 행과 열의 수입니다 (아래쪽 및 오른쪽). OFFNET
셀의 내용을 예를 들어 OFFSET(A1, 1, 2)
반환 이 결과 셀의 내용을 반환 C2
하기 때문에 A1
세포는 (1,1)
우리가 추가 할 경우 (1,2)
우리가 얻을에 (2,3)
셀에있는 해당한다 C2
.
이것을 다른 열에서 n은 행마다 반환-th하도록하려면 ROW
함수를 사용할 수 있습니다 . 이 함수에 인수가 주어지지 라이선스 현재 셀의 행 번호를 반환합니다. 따라서에서 반환 된 값에 승수를 추가하여 모든 n 번째 셀을 반환하는 함수를 결합 OFFSET
하고 ROW
만들 수 있습니다 ROW
. 예를 들면 OFFSET(A$1,ROW()*3,0)
. $1
대상 셀에서 의 사용에 유의하십시오 . 사용되지 않으면 이것이 오프셋이 다른-cell에서 오프셋되므로 사실상 1
승수에 추가 됩니다.
ADDRESS
+의 INDIRECT
접근 방식
ADDRESS
두 개의 정수 입력을 받아 셀의 주소 / 이름을 꾸려 반환합니다. 예를 들어, ADDRESS(1,1)
반환 "$A$1"
. INDIRECT
셀의 주소를 받아 내용을 반환합니다. 예를 들어, INDIRECT("A1")
셀의 내용을 반환합니다 A1
( $
's가있는 입력도 허용 ). ROW
내부 ADDRESS
를 승수와 함께 사용하면 n 번째 셀마다 주소를 얻을 수 있습니다. 예를 들어, ADDRESS(ROW(), 1)
행 1 "$A$1"
에서는 반환하고 행 2에서는 반환 "$A$2"
하는 식입니다. 따라서 이것을 안에 넣으면 INDIRECT
N 번째 셀마다 내용을 얻을 수 있습니다. 예를 들어, INDIRECT(ADDRESS(1*ROW()*3,1))
다음으로 끌면 첫 번째 열에있는 모든 세 번째 내용을 반환합니다.
예
스프레드 시트의 다음 스크린 샷을 고려하십시오. 헤더 (첫 번째 행)에는 아래 행에 사용 된 호출이 포함됩니다. 열에 는 예제 데이터가 포함되어 있습니다. 이 경우에는 양의 정수일뿐입니다 (계산은 외부 영역에서 계속됨). 3 분의 1마다 값입니다. 즉, 1, 4, 7, 10 등을 자합니다.A
열에 접근 방식 B
을 사용하려는 잘못된 시도가 OFFSET
있지만 사용하는 것을 잊었습니다 $
. 보시다시피를 곱하는 동안 3
실제로 4 번째 행을 얻습니다.
열에 C
를 사용하는 OFFSET
것을 기억 $
했지만 접근 방식 을 사용하려는 잘못된 시도 가 있습니다 . 따라서 세 번째 값을 모두 가져 오는 동안 일부 값 (1과 4)을 건너 뛰었습니다.
열에 접근 방식을 D
사용하는 올바른 함수가 포함되어 있습니다 OFFSET
.
열에 + 접근 방식 E
을 사용하려는 시도가 있다는 것을 잊었습니다. 따라서 처음에 일부 행을 건너 뛰었습니다. 칼럼과 같은 문제 입니다.ADDRESS
INDRECT
C
열에 + 접근 방식을 사용하는 올바른 F
함수가 있습니다 .ADDRESS
INDRECT
새 열을 삽입하고 1,2,3,4 삽입을 넣습니다. 그런 다음 다른 새 열을 만들고 = if (int (a1 / 7) = (a1 / 7), 1,0) 명령을 사용합니다. 7 번째 행마다 1을 포함 1의 열을 필터링합니다.
7 번째 줄을 강조 표시합니다. 처음 7 줄의 형식을 몇 번 페인트 브러시합니다. 그런 다음 끝날 때까지 형식을 복사하는 더 큰 그림판을 수행하십시오. 7 번째 줄마다 강조 표시되어야합니다. 색상별로 필터링 한 다음 강조 표시된 셀에서 새 시트로 복사 및 붙여 넣기 (값 붙여 넣기)합니다.
매크로를 만들고 다음 코드를 사용하여 데이터를 가져와 새 시트 (Sheet2)에 넣습니다.
Dim strValue As String
Dim strCellNum As String
Dim x As String
x = 1
For i = 1 To 700 Step 7
strCellNum = "A" & i
strValue = Worksheets("Sheet1").Range(strCellNum).Value
Debug.Print strValue
Worksheets("Sheet2").Range("A" & x).Value = strValue
x = x + 1
Next
도움이되는지 알려주세요! JFV
원본 데이터가 여러 열과 C42에있는 원본 데이터의 첫 번째 항목이있는 열 형식이고 새 (다운 샘플링 된) 데이터도 열 형식이지만 7 번째 행마 다만있는 경우 다음을 수행합니다. 또한 다음과 같이 첫 번째 항목의 행 번호를 빼야합니다.
=OFFSET(C$42,(ROW(C42)-ROW(C$42))*7,0)
새 열을 추가하고 오름차순 숫자로 채 방문합니다. 그런 다음 ([column] mod 7 = 0) 또는 이와 유사한 것이 필터링합니다 (실제로 시도하기 위해 Excel이 내 앞에 있지).
수식으로 필터링 할 수없는 경우 열을 하나 더 추가하고 여기에 수식 = MOD ([column; 7])을 사용할 다음 0을 필터링하면 7 번째 행이 모두 표시됩니다.
참조 URL : https://stackoverflow.com/questions/211062/copy-every-nth-line-from-one-sheet-to-another
'ProgramingTip' 카테고리의 다른 글
a 전에 모든 것을 얻는 방법 : in a string Python (0) | 2021.01.09 |
---|---|
mail 명령을 사용하여 이메일을 보낼 때 보낸 사람을 지정합니다. (0) | 2021.01.09 |
ABC 주문 목록 항목을 굵은 스타일로 만들기 (0) | 2021.01.09 |
var를 초기화하는 방법? (0) | 2021.01.09 |
ggplot2 : 정렬 정렬 (0) | 2021.01.09 |