質問: 2つのexcel列を1つにマージする方法(他の方法) a列とb列に示されているリストがあり、dに示されているようにマージしたいと思います。どうやってやるの?ここでは、アルファベット(a、b、c、d、e、f、g、h)がプレースホルダーとして使用されています。 column dで本当に必要なのは、a1、b1、a2、b2、a3、b3、a4、b4です。
回答: デフォルトロケールの優れた答え に基づいて(そしてahcの要求に応じて)、いくつかの変数を定義し、式を調整することで柔軟性を追加できます。デフォルトのロケールの結果から始めましょう。残念ながら、ここで使用されている数式は、列が3つ以上ある場合、または出力が範囲と同じ行で開始されない場合に壊れます。いくつかの変数を定義して、出力を開始する行と範囲内の列数を指定しましょう。上に表示されている灰色のボックスは、変数を示しています。セルg1、g2、g3の場合、各セルを順番にクリックして範囲に名前を付け、黄色で強調表示されたボックスをクリックします。関連する範囲名を入力します:startrow、numofcols、およびrangeincheaders。これで、元の数式を変数を使用する新しい数式に置き換えることができます。=index( $a$1:$b$4, roundup((row()-startrow+1)/numofcols,0)+if(rangeincheaders="yes",1,0), mod(row()-startrow,numofcols)+1 ) 次に、3番目の列を挿入しましょう。式で参照されている範囲を$a$1:$c$4に変更して、3つの列があることを確認します。 numofcolsも3に設定します。例として、出力を下に移動して、行1ではなく行5から開始するようにします。startrowを5に設定します。最後に、行ヘッダーのオンとオフを切り替えられるようにしたい場合があります。その場合は、rangeincheadersをyesに設定してください。