관세 코드와 관련된 제품 가격이 포함된 일부 데이터가 있습니다.
+==============+========+========+========+========+
| product code | code10 | code20 | code30 | code40 |
|==============+========+========+========+========|
| product1 | 12.3 | 12.4 | 12.5 | 12.6 |
+--------------+--------+--------+--------+--------+
| product2 | 13.3 | 13.4 | 13.5 | 13.6 |
+--------------+--------+--------+--------+--------+
| product3 | 14.3 | 14.4 | 14.5 | 14.6 |
+--------------+--------+--------+--------+--------+
제품 코드, 가격, 관세 코드 등 세 개의 열이 있는 테이블을 얻고 싶습니다.
+==============+=======+=============+
| product code | price | tariff code |
|==============+=======+=============+
| product1 | 12.3 | code10 |
+--------------+-------+-------------+
| product1 | 12.4 | code20 |
+--------------+-------+-------------+
| product1 | 12.5 | code30 |
+--------------+-------+-------------+
| product1 | 12.6 | code40 |
+--------------+-------+-------------+
| product2 | 13.3 | code10 |
+--------------+-------+-------------+
| product2 | 13.4 | code20 |
+--------------+-------+-------------+
| ........ | .... | ...... |
+--------------+-------+-------------+
| product3 | 14.6 | code40 |
+--------------+-------+-------------+
나는 성공하지 못한 채 맞춤형 붙여넣기로 이것을 달성하려고 했습니다.
어쨌든 Calc로 이 작업을 수행할 수 있나요?
답변1
OP 댓글에서 스크립트 사용을 언급했습니다. 이 VBa는 이를 수행하여 결과를 다른 시트에 저장합니다.
귀하의 컴퓨터가 VBa를 지원하지 않더라도 스크립트는 귀하가 선호하는 언어로 이식할 수 있도록 아이디어를 제공할 수 있습니다.
VBa에서는 일반적으로 실행 취소가 작동하지 않으므로 먼저 파일 복사본을 백업으로 저장하세요!!
Sub DoSomeMagic()
Call CreateHeadings
Dim row As Integer
row = 2
Dim sheet2row As Integer
sheet2row = 2
Do While (Worksheets("Sheet1").Range("A" & row).Value <> "")
Dim col As Integer
col = 66
Do While (Worksheets("Sheet1").Range(Chr(col) & row).Value <> "")
Worksheets("Sheet2").Range("A" & sheet2row).Value = Worksheets("Sheet1").Range("A" & row).Value
Worksheets("Sheet2").Range("B" & sheet2row).Value = Worksheets("Sheet1").Range(Chr(col) & row).Value
Worksheets("Sheet2").Range("C" & sheet2row).Value = Worksheets("Sheet1").Range(Chr(col) & 1).Value
col = col + 1
sheet2row = sheet2row + 1
Loop
row = row + 1
Loop
End Sub
Sub CreateHeadings()
Worksheets("Sheet2").Range("A1").Value = "product code"
Worksheets("Sheet2").Range("A1").Font.Bold = True
Worksheets("Sheet2").Range("B1").Value = "price"
Worksheets("Sheet2").Range("B1").Font.Bold = True
Worksheets("Sheet2").Range("C1").Value = "tariff code"
Worksheets("Sheet2").Range("C1").Font.Bold = True
End Sub
원본(시트1)
VBa를 실행한 후 sheet2는 다음과 같습니다.