Excel で列を連結する

Excel で列を連結する

スクリーンショットに示すように、列 1 と列 2 を連結するのに助けが必要です。

ここに画像の説明を入力してください

列 2 には、おそらく「青」などのエントリがさらにあります。「6 インディゴ」エントリの下から、「1 青」「2 青」「3 青」などと入力したいと思います。

意味が通じるといいのですが。Excel は初めてなので、すぐに解決する必要があります。

編集: 列 A のすべてを列 B のすべてと結合する必要があります。

答え1

セル C2 に以下の数式を入力し、数式を C13 (または任意のセル) まで入力します。

=OFFSET($A$2,MOD(ROW()-2,COUNTA(A:A)-1),0)&" "&OFFSET($B$2,INT((ROW()-2)/(COUNTA(A:A)-1)),0)

説明:

最初の部分では、OFFSET($A$2,MOD(ROW()-2,COUNTA(A:A)-1),0)列 A から適切なセルを検索します。 COUNTA(A:A)-1列 A の項目数をカウントします (ヘッダー、つまり行 1 の場合は 1 を減算)。 MOD(ROW()-2,COUNTA(A:A)-1)現在の行 (C2...C13) を列 A の項目数で割ったときの剰余を計算します。この値は、セル (C2...C13) では (0,1,2,3,4,5,0,1,2,3,4,5) として表示されます。これらの値を参照にオフセットすると、$A$2列 A の正しい行が返されます。

&" "&間にスペースを挿入します。

2 番目の部分はOFFSET($B$2,INT((ROW()-2)/(COUNTA(A:A)-1)),0)最初の部分と似ています。ただし、剰余ではなく商を計算します。(C2..C13) の関連値は (0,0,0,0,0,0,1,1,1,1,1,1) になります。これらを参照にオフセットすると、$B$2「Violet」または「Indigo」、またはそれに続く任意のテキストが返されます。

答え2

これを完了するために私が考えられる唯一の方法は、Excel のマクロの背後にあるプログラミング言語である VBA (Visual Basic for Applications) スクリプトを記述することです。

その背後にあるロジックは次のようになります (申し訳ありませんが、すぐにコードは思い出せません)。

x = 0 
ForEach entry in column a
    ForEach entry in column b
         Set value of cell c1 + x
         x + 1

関連情報