スプレッドシートで行と列をカンタンに入れ替えたい!と思っているあなたに、二つの方法を説明しますね。
元のデータを更新する必要が無ければ、「特殊貼り付け」が便利です。
元のデータを変更して、行列を入れ替えた表にも即時反映させたいなら、「TRANSPOSE関数」を使いましょう。
では、スプレッドシートの縦と横を置き換える二つの方法を具体的に説明しましょう。
「特殊貼り付け」の「転置して貼り付け」を使う
例として、下図の表をスプレッドシートで作ってみました。
A列に月が、そして、1行目に商品が入力されています。
これを、A列に商品を、そして1行目に月を表示する表にしてみましょう。
元の表をコピーする
元の表を選択して[編集]から[コピー]を選びます。(下図参照)
元の表を選択した状態で、[Ctrl] + [c] でも同様にコピーできます。
次に、貼り付け先の先頭になるセルを選択します。
特殊貼り付けから転置して貼り付けるを選択する
[編集]から[特殊貼り付け]、そして[転置して貼り付ける]を選択します。
その結果は下図の通り。
A列に商品が、そして10行目は月が表示されています。縦横が入れ替わって貼り付けできました。
「転置して貼り付ける」の注意点
上記で説明した「転置して貼り付ける」は、上記の例で「合計」欄に設定したSUM関数(指定したセルの合計を計算する関数)は保持されます。縦横を変更しても、コピー先の表内で表内の数値を変更すれば合計は自動計算されます。
しかし、貼り付け後の表はコピー元の表とは別の表になりますから、コピー元の表に変更を加えても、行列を入れ替えて貼り付けたコピー先の表には反映されません。
例えば…(下図参照)
元表の B2 (1月のアクセサリ売上)を変更しても転置して配置した表の数字は変わりません。
もし、元の表から行列を入れ替えた表を作成し、かつ、元の表に入力したデータを行列を入れ替えた表にも即時反映したい!というニーズがあるなら、TRANSPOSE関数を使うのが良いです。
TRANSPOSE関数 行列を入れ替えた表を作成し元データの変更を即時反映する
それでは、地味だけど個人的にはとても便利だと思う TRANSPOSE関数の使い方を説明しますね。
行列を入れ替えた表を作成する先頭セルを選択してTRANSPOSE関数を入力する
行列を入れ替えた表を作りたい先頭セルを選択します。
下図の例では、A10 を先頭セルとして、元表の行列を入れ替えた表を作成したいと思います。
選択したセルに =TRANSPOSE と入力します。
=TRA くらいまで入力すると 「TRANSPOSE 配列の行と列を入れ替えます」というダイアログが表示されますので、そのダイアログをクリックしてもよいです。
イコールの後にアルファベットで TRANSPOSE を入力するか、途中まで入力した状態で表示されるダイアログをクリックすると、選択したセルには「=TRANSPOSE( 」と表示され、下図の通りTRANSPOSE関数の説明が表示されます。
=TRANSPOSE 以降の()内に、元の表の範囲を指定します。
=TRANSPOSE( まで表示されたら、コピー元の表を選択しましょう。
下図のサンプルでは、コピー元のデータが A1から G7 までがコピー元のの表ですので、()内に入力される範囲は A1:G7 となります。
つまり、コピー先の先頭セルに入力されるべき TRANSPOSE 関数の記述は、以下の通りとなります。
=TRANSPOSE(A1:G7)
TRANSPOSE関を入力をして[Enter]を押すと、行列が入れ替わった表が表示されます。(下図参照)
「転置して貼り付ける」でコピーした時とは異なり、元の表でセルにつけた色は、TRANSPOSE では引き継がれません。
TRANSPOSE なら元表の更新が行列を入れ替えた新しい表に即時反映される
元表の B2 (1月のアクセサリー売上)を 1,500から200,000に変更すると、TRANSPOSEで行列を入れ替えた表にもその変更が即時反映されます。
行列を入れ替えた表を別シートに作成する
前の手順では、同じシート内に行列入れ替えの表を作成する方法を説明しましたが、TRANSPOSE関数を使って別シートに行列を入れ替えた表を配置することもできます。
新しいシートを作成しましょう。
Googleスプレッドシートの最下部に表示される「+」をクリックします。新しいシート「シート2」が表紙されます。
TRANSPOSE関数を使って行列を入れ替えた表を作成する場所の先頭セルを選択します。(下図の例では、A1を先頭セルとして行列を入れ替えた表を作成したいと思います。)
選択したセルに =TRANSPOSE( と入力します。
TRANSPOSE関数の説明が表示されます。(下図参照)
この状態で、コピー元の表があるシート(今回の例では「シート1」)に戻り、コピー元の表の範囲を指定します。
今回は、コピー元として別シートを参照していますので、関数表記は以下の通りになります。
=TRANSPOSE(‘シート1’!A1:G7)
上図サンプルでは最後の閉じ括弧 ” ) ” が表示されていませんが、Googleスプレッドシートならエンターキーを押せば最後の閉じ括弧 ” ) “を追加してくれます。賢いね💛
結果は下図の通り。シート2に行列を入れ替えた表が作成できました。
TRANSPOSE関数を使って別シートに配置した行列を入れ替えた表も、データは元の表と連動します。元表の数値を書き換えれば、別シートの表にも変更が即時反映されます。
ちょっと便利なGoogleスプレッドシート TRANSPOSE関数の使い方説明でした。
ExcelもTRANSPOSE関数が使えますが、[Ctrl] + [Shift] + [Enter] で確定するとか、使い方が少し異なります。その説明はまた別途。
以上 ご参考になれば幸いです♪