
位置が変わる可能性のある列が多数あるデータシートがあります。使いやすくするために、列を指定された順序で保持する 2 番目のシートを作成したいと思います。列のタイトルは同じままであることが予想されるため、タイトルに基づいて列をコピーします。つまり、列の最初のセルが文字列と一致するようにします。
例として、シート1の3つの列は
id name due date
しかし、シート1の別の例では、次のように表示されることがあります。
id due date name
2 番目のシートで、最初の行が「id」、2 番目が「name」などと指定したいと考えています。hlookup を使用しようとしましたが、1 つのセルを入力する場合にのみ便利で、数式をドラッグしてもうまくいきませんでした。Excel の関数を使用してこれを実行する方法についてのアイデアはありますか? 絶対に必要な場合を除いて、マクロは使用しないことをお勧めします。
答え1
=HLOOKUP(A$1,Sheet1!$A:$C,ROW(),FALSE)
数式を下へ入力していくと、ROW() はテーブル上の次の列を参照するためのオフセットとして機能します。
答え2
私はよくこれに遭遇します。これを解決する簡単な方法の 1 つは、列をオフセットで最初のページに戻すことです。これらの変数データが Sheet1 の A1:Q499 にあり、次に Sheet 2 にあると仮定すると、セル B2 に次のデータを入力します。
OFFSET(Sheet1!$A$2,0,MATCH(A$1,Sheet1!$A$1:$Q$1,0)-1,499,)
さらに高度な方法として、Sheet2 の A1:Q1 にリストからの値のみを許可するセル保護を設定し、Sheet1 の A1:q1 をそのリストとして使用することもできます。