エクセルで「タテヨコ変換」をする一番簡単な方法は、「行列を入れ替えてその値を貼りつける」というものです。本稿では『エク達』というウェブサイトに掲載した「タテヨコ変換」のテクニックのシリーズの一環として、「一番簡単な変換方法」を紹介します。ただし、この方法にはさまざまな限界もあるのですが、この点については次回の課題です。
エクタツは、「エクセル評論家」でもある新宿会計士が、エクセルなどの「オフィス系の汎用ソフト」を使い、誰でも気軽に、かつ安価に、とても迅速かつ正確に仕事をこなす、ビジネスマンとしての基本テクニックを研究するサイトである。 |
本稿では、実務上極めて頻繁に出てくる「タテヨコ変換」の基本形「行列を入れ替えてえの値貼り付け」を紹介したい。とりあえず手っ取り早く「縦横変換」をしようと思うのであれば、この手法が最も簡単である。
実務上、エクセルの「タテヨコ」を変換したいと思うことがしばしば発生する。
たとえば、こんなデータがあったとしよう(図表1)。
図表1 東京都・新規陽性者数の一覧
この図表は、東京都ウェブサイト『新型コロナウイルス陽性患者発表詳細』からダウンロードしたデータをもとに、日付ごと・年齢階層ごとに集計した新規陽性者数の一部を抽出したものだ。
セルを見ていただくとわかるが、行(青枠)が日付、列(赤枠)が年齢階層を意味している。
この点、「年齢階層別」という区分が増える可能性は低いが、行数は無限に増えて行く可能性があるため、シートをこのような形式で作り込むのは、ある意味では当然のことである。
なぜなら、エクセルの場合、列数(つまりヨコ)は限られているが、行数(つまりタテ)は基本的に100万件を超えるデータを展開することができるため、無限に増えて行く可能性があるデータは縦展開するのが基本形である。
ただ、問題は、このままだとどうも加工し辛い、という点にある。
たとえば、実務上は「ある日の新規陽性者数だけを抜き出して、それを年齢階層別にタテに展開したい」というニーズが出てくることもある(図表2)。
図表2 東京都・8月29日における新規陽性者数の一覧と年齢階層別構成比
これを、どのようにして作り込むのが良いか。
いちばん簡単な方法は、「コピー」→「形式を選択して貼り付け」、だ。
具体的には、貼り付けたい値をひとつひとつ見つけ、範囲選択したうえで新たなシートに「Alt+E→S」で「形式を選択して貼り付け」ウィンドウを呼び出し、「値」「行列を入れ替える」の2つのチェックボックスにチェックを入れて「OK」を押すのがいちばん簡単な方法だ(図表3~図表5)
図表3 コピー
図表4 別シートにて「Alt+E」→「S」を押す
図表5 貼り付けた結果
とりあえずは、これが最も手っ取り早いだろう。
ただし、この方法だと、「ある問題」が生じる。その問題とは何か、そしてそれを解決する方法は何か。これについてはあと2回ほど、別稿にて議論したいと思う。
エクタツは、「エクセル評論家」でもある新宿会計士が、エクセルなどの「オフィス系の汎用ソフト」を使い、誰でも気軽に、かつ安価に、とても迅速かつ正確に仕事をこなす、ビジネスマンとしての基本テクニックを研究するサイトである。 |
View Comments (1)
>「ある日の新規陽性者数だけを抜き出して、それを年齢階層別にタテに展開したい」というニーズ
本題(エク達+行列入れ替え)から外れますがテキストフィルタ的思考でいくと
「2021/08/29」が見つかったら(配列)年齢階層[年齢/10を整数]を+1
…と思ったら元CSVからして年齢じゃなくて年代なのね。じゃあ
第5列が「2021-08-29」だったら(辞書)年齢階層[第9列]を+1
10歳未満 217
10代 371
20代 825
30代 602
40代 535
50代 346
60代 113
70代 75
80代 27
90代 12
100歳以上 1
ありゃ、違ってるけど大体合ってるからご勘弁^^