[excel - python - uipath] 엑셀 자동화에 대해서 알아보자(9-1)

루까까·2023년 8월 21일
1

Excel 자동화

목록 보기
17/25

이번 시간에는 Find First/Last Data Row activity에 대해서 알아보자

1. Find First/Last Data Row

Find First/Last Data Row는 지정된 시트, 범위 또는 테이블에서 데이터가 시작되는 행과 데이터를 포함하는 마지막 행의 행 번호를 찾는 기능을 지원하는 activity이다.

가장 주력인 기능은 당연히, 본인이 지정한 열의 첫 번째 행(시작되는 행)과 마지막 행 index를 제공하는 것이다.
물론 부가적으로 여러 기능 또한, 제공하고 있다.

1-1.첫 번째 행 index 제공

  • '다른 이름으로 첫 번째 행 번호 저장'에다가 변수(int형)를 집어넣으면 해당 변수에 index 반환

1-2.마지막 행 index 제공

  • '다른 이름으로 마지막 행 번호 저장'에다가 변수(int형)를 집어넣으면 해당 변수에 index 반환
  • '건너뛸 빈 행'
    • 해당 숫자에 따라 최대 건너띄는 빈값을 허용
    • 예를 들어 숫자 3이면 최대 3행 까지는 빈값이여도 연속된 행이라고 인지함
  • '마지막 행 오프셋'
    • 해당 숫자에 따라 마지막 행 index를 변화 시킴
    • '마지막 행 - 마지막 행 오프셋' 값이다.(마지막으로 입련된 행의 경우, 비어 있는 첫번 째 행이면 +1을 해줘야함 )
  • '첫 번째 행 오프셋'
    • 해당 숫자에 따라 첫번째 행 index를 변화 시킴
    • '첫 번째 행 + 첫 번째 행 오프셋' 값이다.

1-3.마지막 행을 다음으로 구성의 경우는 마지막 행을 두 가지로 표현하는 방법이다.

  • 마지막으로 입력된 행
    • 데이터가 마지막으로 입력된 행값을 반환
    • 3행까지 데이터가 있다면 3을 반환
  • 비어 있는 첫번 째 행
    • 데이터가 마지막으로 입력된 행 다음값을 반환
    • 3행까지 있는 데이터라면 4를 반환

1-4.헤더 포함

  • 헤더값 유무이다.
  • 선택하면 열 이름을 실제 헤더값으로 기입해줘야 한다.
  • 선택하지 않으면 A, B 식으로 기입해줘야 한다.

1-5.표시되는 행만

  • 표시되는 행 유무이다.
  • 선택하면 보여지는 행만 해당된다.

Find First/Last Data Row 공식문서

2. 연습

연습용.xlsx sheet1에 다음과 같은 데이터가 있다고 가정하자.

  • 기본적으로 헤더값 포함, 체크 표시되는 행만 체크X로 진행하였다.
  • 첫번째 행 index를 저장할 변수는 'first', 마지막 행 index를 저장할 변수는 'last'라고 선언하였다.

2-1. 마지막 행을 다음으로 구성의 경우 -> 마지막으로 입력된 행

결과값으로는 다음과 같은 결과가 나왔다.

  • 첫 번째 행의 경우, 머리글을 제외하고 시작한 값을 저장하기에 first가 2라는 값이 나오게 되었다.
  • 마지막 행의 경우, 마지막으로 입력된 행이기에 last에 4라는 값이 나오게 되었다.(실제 데이터도 4행까지 기입 됨)

2-2. 마지막 행을 다음으로 구성의 경우 -> 마지막으로 입력된 행, 마지막 행 오프셋

그럼 2-1과 같은 조건으로 하 되, 마지막 행 오프셋 조건을 달아 두면 결과는 어떻게 나올까?
마지막 행 오프셋을 2로 설정하고 진행해 보자.

결과값으로는 다음과 같은 결과가 나왔다.

  • 첫 번째 행의 경우, 위와 마찬가지임으로 first에 2
  • 마지막 행의 경우, 위와 마찬가지임으로 last에 원래는 4의 값이지만 마지막 행 오프셋 2로 넣어주었기에 4-2=2인 2값이 나오게 되었다.

2-3. 마지막 행을 다음으로 구성의 경우 -> 마지막으로 입력된 행, 건너뛸 빈 행

연습용 데이터를 조금 변화 시켜 보자.

여기서 2-1과 같은 조건으로 해당 데이터를 실행하면,

  • 건너뛸 빈 행 값이 0으로 설정하였기에 3~5행은 3 즉 uipath는 6행부터 다른데이터로 취급하였기에 last값을 2로 반환 하였다.
  • 여기서 건너뛸 빈 행값을 3으로 설정하면 다음과 같은 결과가 나오게 된다.

  • 방금전까지는 다른 데이터로 취급하여 last값을 2로 반환하였지만 지금은 건너뛸 행값을 설정하였기에 같은 데이터로 취급 따라서 last값을 7로 반환하였다.

여담

  1. 연습의 경우 sheet값을 기준으로 하였지만 특정 범위도 충분히 지원해 준다.

여담2

만약 데이터의 행보다 마지막 행 오프셋값이 더 크면 결과는 어떻게 나올까? 그럴 경우 -1로 값을 반환한다.

profile
기타치는 개발자

0개의 댓글