중복되지 않은 데이터에 대한 Excel의 OFFSET 함수

중복되지 않은 데이터에 대한 Excel의 OFFSET 함수

OFFSET 함수를 사용하여 열의 데이터를 3배로 늘리고 싶습니다. 하지만 중복된 데이터(때로는 2번 이상 반복)가 있어서 둘 다 아닌 세 배로 만들고 다른 하나는 유지하고 싶습니다. 내 데이터와 기능은 다음과 같습니다.

 =OFFSET($A$2,INT((ROWS($A$2:A2)-1)/3),0)
               A
 2      5YJSA3H17EFP49729
 3      5YJSA3H17EFP41128
 4      5YJSA3H17EFP30954
 5      5YJSA3H17EFP30954
 6      5YJSA3H17EFP30212
 7      5YJSA3H17EFP30050

이 예에서는 5YJSA3H17EFP30954가 중복되었지만 그중 하나에 OFFSET을 수행하고 다른 하나는 유지하려고 하므로 이를 4번 반복하려고 합니다.

답변1

B2, C2에 이것을 입력하면

지하 2층
=IFERROR(IF(AND(A2=A1;B1=3);1;IF(AND(A2=A1;B1<3);0;3));3)

C2
=IFERROR(오프셋(B2;-1;0)+오프셋(C2;-1;0);0)

그런 다음 B 및 C 열을 채우면 다음에 대한 테이블이 표시됩니다.
B) 동일한 행에 있는 각 항목이 C 열에서 반복되어야 하는 횟수
) 반복된 값을 선택할 A1 오프셋 행.

이제 저는 이것이 수식으로는 가능하지 않다고 생각합니다.

VBA를 사용해야 합니다. 아래에서는 테이블이 A1에서 시작하는 경우 요청된 테이블을 생성하는 "하위"(위에서 선택한 논리/공식 포함)를 찾습니다.

하위 createDupeTable()

  r = 1: c = 1 ' 가정: Cells(r,c)를 사용하여 A1에 액세스하는 경우
  br = 1: bc = c + 1 ' 복사본 삽입을 시작할 위치, Cells(br,bc)

 ' "B1"(위)의 값은 항상 3입니다.
  pz = 3

  Do While Cells(r, c).Value <> ""
    a1 = 셀(r, c).값
    a2 = 셀(r + 1, c).값
    b1 = pz
    a2 = a1이고 b1 = 3이면
      Z = 1
    또 다른
      a2 = a1이고 b1 < 3이면
        Z = 0
      또 다른
        Z = 3
      종료 조건
    종료 조건

    pz = Z
    Z > 0일 때 수행
      Cells(br, bc).Value = Cells(r, c).Value ' 목록에서 하나의 값을 복사합니다.
      Z = Z - 1
      br = br + 1
    고리

    r = r + 1
  고리
서브 끝

결과:

     AB
1 5YJSA3H17EFP49729 5YJSA3H17EFP49729
2 5YJSA3H17EFP41128 5YJSA3H17EFP49729
3 5YJSA3H17EFP30954 5YJSA3H17EFP49729
4 5YJSA3H17EFP30954 5YJSA3H17EFP41128
5 5YJSA3H17EFP30212 5YJSA3H17EFP41128
6 5YJSA3H17EFP30050 5YJSA3H17EFP41128
7 5YJSA3H17EFP30954
8 5YJSA3H17EFP30954
9 5YJSA3H17EFP30954
10 5YJSA3H17EFP30954
11 5YJSA3H17EFP30212
12 5YJSA3H17EFP30212
13 5YJSA3H17EFP30212
14 5YJSA3H17EFP30050
15 5YJSA3H17EFP30050
16 5YJSA3H17EFP30050

관련 정보