この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ExcelのTRANSPOSE関数を使うと縦のデータを横して保存することができます。また、vbaでもTRANSPOSEを使ってマクロを記述することができます。
(使用Excel;2013)
TRANSPOSE関数
TRANSPOSE関数は次のように記述します。
「=TRANSPOSE(配列)」
※ 「配列」について
「配列」には「($A$1:$D$8)」というようにセル番号を記述します。配列については「配列数式のガイドラインと例」を参照してみてください。
※ 式を記述した後の注意点!
TRANSPOSE関数を活かすためには、「Ctrl」キーと「Shift」キーを押しながら「Enter」を押します。
(microsoft;配列数式のガイドラインと例より)
注 配列数式をブックに入力するときは Ctrl キーと Shift キーを押しながら Enter キーを押すため、配列数式は “CSE 数式” とも呼ばれます。
TRANSPOSE関数の使用例
次のような表を用意しました。
F1セル以降にA1セルからD8セルまでの表の縦横を入れ替えたデータを貼り付けてみます。
F1セルに次のような式を入力しました。
「=TRANSPOSE($A$1:$D$)」
しかし、下の画像のとおり「#VALUE!」と表示されエラーとなってしまいます。
「Ctrl」キーと「Shift」キーを押しながら「Enter」
F1セルをいったん選択し(つまりカーソルキーが点滅する状態)、「Ctrl」キーと「Shift」キーを押しながら「Enter」を押してみます。
上の画像のとおりF1セルの式全体が「{ }」でくくられ、エラーになることなくA1セルの「従業員」が表示されました。
「F1からM4」に「A1からD8」のデータの縦横を入れ替えて貼り付けるため、同じ作業を繰り返してみます。
F1セルからM4セルまで選択後、数式バーをクリックして、「Ctrl」キーと「Shift」キーを押しながら「Enter」を押してみます。下の画像のとおり、縦横を入れ替えて同じデータを表示することができました。
TRANSPOSEのvbaでの使用例
次にTRANSPOSEをvbaで使用してみます。次のように「従業員別」と「D_給与」という2つのシートを用意しました。
TRANSPOSEを使って別シートへ縦横を入れ替えて貼り付け
「従業員別」シートに記載した数値を「D_給与」に縦横を組み替えて貼り付ける記述をしてみました。
上の画像のとおり「WorksheetFunction.Transpose()」でVariant型の変数(varFa)に代入したデータの縦横を入れ替えて貼り付けてみます。
※ 「従業員別」シートのA列目の文字列は、「D_給与」シートの1行目にすでに入力されているものとして、B1セルかたD8セルを貼り付けるような記述になっています。
実行すると次のとおりです。
※ 上の画像の水色の枠囲み部分はマクロの記述対象外部分です。
まとめ
見た目を考えて縦横を組み替えたい表がある場合、TRANSPOSE関数を使うと便利かもしれません。
■□◆◇ 編集後記 ◇◆□■
昨夜はだいぶ涼しかったですね。ちょっとのどが痛くなってしまいました。