VBAの勉強を始めてみた

色々試しています。

ひっそりとExcel関数のおさらい(表の縦・横を入れ替える)

今回は、表の縦・横を簡単に入れ替える方法を紹介します。

 目次

 

形式を選択して貼り付け(行列を入れ替える)

これが一番手っ取り早く、簡単です。
表をコピーし、貼り付けたい位置で、形式を選択して貼り付け →「行列を入れ替える」にチェック → OK
これだけです。

f:id:kouten0430:20180729150644j:plain

f:id:kouten0430:20180729150659j:plain


ただし、コピー元・コピー先は参照関係にはなっていないので、コピー元を変更したからといってコピー先が自動的に変更されるということはありません。むしろ、そのほうが都合いい!って場合には、この「形式を選択して貼り付け」が向いてます。

 

TRANSPOSE関数を使用する

=TRANSPOSE(配列)

 ※配列とは、元となる表を指します。表のセル範囲などで指定します。(これを配列引数という)

TRANSPOSE関数を使用して任意の範囲に、元となる表から縦・横を逆にしたクローンを生成します。

注意する点は、TRANSPOSE関数を適用する任意の範囲は、元となる表の行数・列数を逆にした範囲になるということです。

下の画像の元の表(B2:G8)は、7行・6列なので、クローンを生成する任意の範囲は、6行・7列にします。マウス等で選択中、左上に「6R×7C」のように表示されるので、わざわざ目で追って数える必要はありません。※Rは行、Cは列を表します

f:id:kouten0430:20180729151303j:plain

 

任意の範囲を選択できたら、数式バーに =TRANSPOSE(B2:G8) と入力し、Ctrl + Shift + Enter で確定します。

この、Ctrl + Shift + Enter で確定するという行為は、任意の範囲が一つの数式を共有することを意味します。このように確定された数式を、配列数式またはCSE数式( Ctrl + Shift + Enter で確定するから)と呼び、数式が共有される範囲を配列範囲と呼びます。

数式バーには、配列数式であることを示すために、数式が中カッコで囲まれます。{=TRANSPOSE(B2:G8)}

 

これで、下の画像のように任意の範囲に縦・横 逆のクローンが生成されました。

f:id:kouten0430:20180729152315j:plain

 

TRANSPOSE関数で生成されたクローンは、元となる表を常に参照しているため、元の表に変更があればクローン側にも変更が反映されます。(ただし、書式は参照されないため、罫線や、文字の大きさなどは自分で設定する必要があります)