X

タテヨコ変換の基本形①「行列入れ替え+値貼り付け」

エクセルで「タテヨコ変換」をする一番簡単な方法は、「行列を入れ替えてその値を貼りつける」というものです。本稿では『エク達』というウェブサイトに掲載した「タテヨコ変換」のテクニックのシリーズの一環として、「一番簡単な変換方法」を紹介します。ただし、この方法にはさまざまな限界もあるのですが、この点については次回の課題です。

エクタツは、「エクセル評論家」でもある新宿会計士が、エクセルなどの「オフィス系の汎用ソフト」を使い、誰でも気軽に、かつ安価に、とても迅速かつ正確に仕事をこなす、ビジネスマンとしての基本テクニックを研究するサイトである。

本稿では、実務上極めて頻繁に出てくる「タテヨコ変換」の基本形「行列を入れ替えてえの値貼り付け」を紹介したい。とりあえず手っ取り早く「縦横変換」をしようと思うのであれば、この手法が最も簡単である。

実務上、エクセルの「タテヨコ」を変換したいと思うことがしばしば発生する。

たとえば、こんなデータがあったとしよう(図表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

    ありゃ、違ってるけど大体合ってるからご勘弁^^