それぞれ行数が異なる2つの列があります。この例では、A1 の項目を範囲 (B1:B50) でマージ (スカラー倍数? 複数の行列?) し、列 A の各項目に対して繰り返します。
2 つの値をカンマで区切るのが理想的です。これが私が達成したいことです。
どのルートに行くのが一番良いでしょうか?マトリックス関数はテキストの結合に使用できますか?
それぞれ行数が異なる2つの列があります。この例では、A1 の項目を範囲 (B1:B50) でマージ (スカラー倍数? 複数の行列?) し、列 A の各項目に対して繰り返します。
2 つの値をカンマで区切るのが理想的です。これが私が達成したいことです。
どのルートに行くのが一番良いでしょうか?マトリックス関数はテキストの結合に使用できますか?
このコードを試してください:
Sub sample()
Dim lastRowA As Long, lastRowB As Long, row As Long
lastRowA = Range("A" & Rows.Count).End(xlUp).row
lastRowB = Range("B" & Rows.Count).End(xlUp).row
row = 1
For i = 1 To lastRowA
For j = 1 To lastRowB
Cells(row, 4) = Cells(i, 1)
Cells(row, 5) = Cells(i, 1) & "," & Cells(j, 2)
row = row + 1
Next
Next
End Sub
SQL からデータを取得している場合、aCROSS JOIN
は 2 つのデータ セットのデカルト積を返します。
次に、連結するだけです。
ここで SQL-Server を使用する例を次に示します。
CREATE TABLE #x (columnX CHAR(1));
INSERT INTO #x
values
('a'),
('b'),
('c');
CREATE TABLE #y (columnY CHAR(1));
INSERT INTO #y
values
('d'),
('e'),
('f');
SELECT #x.columnX,
#y.columnY,
#x.columnX + ', ' + #y.columnY
FROM #x
CROSS JOIN #y