関税コードに関連する製品価格のデータがいくつかあります:
+==============+========+========+========+========+
| 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 |
+--------------+--------+--------+--------+--------+
製品コード、価格、関税コードの3つの列を持つテーブルを取得したい
+==============+=======+=============+
| 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は次のようになります。