서로 겹치는 숫자 구간 쌍 찾기

구간 목록을 두 번 불러와 서로 겹치는 구간을 찾아보세요. 작은 구간이 큰 구간 안에 들어간 경우도 찾고, 끝점에서만 닿는 구간은 제외할 수 있습니다.

서로 겹치는 숫자 구간 쌍 찾기 설명도
가상의 데이터로 구성한 설명도입니다. 실제 화면 캡처가 아닙니다.

한 구간의 시작점이 다른 구간 안에 있는지만 보면, 작은 구간을 통째로 포함한 경우를 놓칠 수 있습니다. 같은 목록을 두 번 연결한 뒤 한쪽 끝점에서 다른 쪽 시작점을 빼고, 방향을 바꿔 한 번 더 계산하세요. 두 값이 모두 양수인 구간 쌍을 남기면 끝점에서만 닿는 경우를 제외하고 겹치는 구간을 찾을 수 있습니다.

포함 관계와 끝점 접촉을 나눠 보기

가상 예제에서 구간 1은 0~10이고 구간 4는 2~4입니다. 구간 4 전체가 구간 1 안에 들어갑니다. 구간 1과 3은 10에서 닿기만 하므로 이번에는 제외하겠습니다. 아래 두 표는 같은 원본을 비교용으로 복사한 것입니다. 불러오기 전에 원본의 구간마다 고유한 숫자 ID를 붙이고, 두 복사본의 칼럼 이름을 First·Second로 구분하세요. ID와 복사본은 직접 준비해야 합니다.

FirstRanges

Route FirstID FirstStart FirstEnd
R 1 0 10
R 2 8 12
R 3 10 15
R 4 2 4

SecondRanges

Route SecondID SecondStart SecondEnd
R 1 0 10
R 2 8 12
R 3 10 15
R 4 2 4

같은 목록을 연결하고 시작점·끝점 대조하기

  1. FirstRanges와 SecondRanges를 불러와 Route끼리 ‘일치하는 데이터만’으로 연결합니다. 같은 Route에 속한 구간끼리 대조하는 설정입니다. 4행×4행이 연결돼 처음에는 16개 후보 쌍이 생깁니다. 두 Route 칼럼은 결과에서 숨겨도 됩니다.
  2. ‘결과 정리’에서 ‘계산’을 누릅니다. ‘결과 항목 이름’에 IDGap을 입력하고 ‘계산 방식’은 ‘빼기’, 첫 번째 값은 SecondID, 두 번째 값은 FirstID로 선택하세요. 바로 아래에 ‘필터’를 추가해 IDGap의 조건을 ‘보다 큼’, 기준값을 0으로 설정합니다. 같은 구간끼리의 연결과 순서만 바뀐 쌍이 빠져 서로 다른 6쌍만 남게 됩니다.
  3. 그 아래 ‘계산’에서 GapAB = FirstEnd − SecondStart를 만들고, 이어서 GapBA = SecondEnd − FirstStart를 추가합니다. 각각 ‘빼기 · A − B’를 선택하고 A와 B의 순서를 맞추세요.
  4. 두 계산 아래에 GapAB와 GapBA의 필터를 각각 추가합니다. 두 필터 모두 조건은 ‘보다 큼’, 기준값은 0입니다. 양방향으로 확인해야 한 구간이 다른 구간 안에 완전히 들어간 경우도 찾을 수 있습니다.
  5. ‘적용’을 누른 뒤 결과 미리보기에서 1–2, 1–4, 2–3 세 쌍을 확인하고 저장합니다. IDGap·GapAB·GapBA는 판단 근거로 결과에 남깁니다.

같은 구간 목록을 두 역할로 비교하기 설명도

겹치는 세 쌍을 점검하기

결과에는 1–2, 1–4, 2–3 세 쌍이 남습니다. 구간 4 전체가 구간 1 안에 들어가는 1–4도 포함됩니다. 1–3은 GapAB가 0이므로 빠집니다. GapAB·GapBA는 겹치는지 판단하는 데 쓰는 값으로, 겹친 길이를 나타내지는 않습니다. 1–4에서 실제 겹친 길이는 2이며 GapAB의 8과 다릅니다.

FirstID FirstStart FirstEnd SecondID SecondStart SecondEnd IDGap GapAB GapBA
1 0 10 2 8 12 1 2 12
1 0 10 4 2 4 3 8 4
2 8 12 3 10 15 1 2 7

겹치는 세 쌍을 점검하기 설명도

구간 목록을 준비할 때 확인할 점

각 구간의 시작점과 끝점은 숫자여야 하며 Start < End를 만족해야 합니다. 원문에 나온 12+50 같은 측점 표기는 불러오기 전에 직접 1250 같은 숫자로 바꾸세요. 끝점에서 닿는 경우도 겹침으로 보려면 두 Gap 조건을 모두 0 이상으로 바꾸면 됩니다. 같은 Route에 n행이 있으면 처음 연결한 결과는 n²행입니다. 작은 목록으로 작업하거나 Route를 충분히 좁혀 사용하세요. 결과는 검토할 구간 쌍을 모은 목록이며 원본 셀에 색을 칠하지는 않습니다.

내 파일로 시작해 보세요

JOIN SHEET에서 시작하기 ↗

Excel·CSV 작업은 PC에서 이용해 주세요.
새 창에서 열리며 작업 중인 데이터를 바꾸지 않습니다.

예제 확인일:

출처

How can I flag overlaps in number ranges? (Reddit r/excel)

도로 공정에서 두 작업반의 시작·끝 측점 구간이 겹치는 부분을 찾는 질문을 참고했습니다. 위 표와 작업 순서는 설명을 위해 별도로 만든 가상 예제이며, 질문자의 JOIN SHEET 이용 후기는 아닙니다.