いまさら聞けないExcelの使い方講座

【Excel】QとAが別の行に入力されているQ&A表からAだけをを取り出すテク

表のデータを1行おきにサッと取り出せますか?

2行目、4行目、6行目と1行おきにデータを取り出す

 表をデータ入力する時に横方向に列を増やして、関連情報を1行に入力することが多いですよね。しかし、印刷を前提とするフォーマットなどでは、1つの情報を複数行に入力する構造になっているものもあります。例えば、質問と回答例、用語解説、設定マニュアルなどです。

例えば、A4用紙で縦向きに印刷する表などでは、1つの情報を複数行に入力することがあります

 このような表は省スペースで体系的に情報を整理できるメリットがありますが、データベースとして扱うには適しません。複数行にまとめられている情報を分割したいですよね。上記の例なら「Q」と「A」に分けたいはずです。

 その場合、偶数行の「Q」か奇数行の「A」だけを取り出すことになりますが、簡単な方法をご存じですか? 今回は1行おきにデータを取り出すテクニックを紹介します。

フィルター用のフラグを用意する

 まずはフィルターを利用した簡単な方法です。例えば「a」や「b」といったフラグを用意して、絞り込むだけです。「1」「2」などでも構いません。なお、3行以上のまとまりなら「a」「b」「c」と3つのフラグを用意します。

ここでは「a」「b」と入力しました(①)
オートフィルで下方向へコピーした状態です。
フラグの列を含めてフィルターを設定します(②)。なお、[Ctrl]+[Shift]+[L]キーですばやくフィルターを設定できます
ここでは「a」にチェックを付けて(③)、[OK](④)をクリックします
「a」(偶数行)のみに絞り込まれました
あとは[Ctrl]+[C]キーでコピーして(⑤)
[Ctrl]+[V]キーで貼り付けるだけです(⑥)

テキストフィルターも利用できる

 このサンプルの場合は[テキストフィルター]を利用しても構いません。規則性のあるコードなどでは有効な方法です。ここでは「Q」から始まるという条件で絞り込んでみます。

フィルターボタンから[テキストフィルター](⑦)-[指定の値で始まる](⑧)とクリックします
ここでは「Q」と入力しました(⑨)。[OK](⑩)をクリックします
「Q」から始まる行に絞り込まれました

関数を活用する

 FILTER関数、ISEVEN関数、ROW関数を組み合わせる方法もあります。ROW関数で行番号を取り出し、ISEVEN関数は偶数かどうかを判定して、一致した行をFILTER関数で取り出します。なお、奇数行を取り出したい時は、ISODD関数で奇数かどうかを判定可能です。表の見出しはあらかじめ入力しておいてください。

セルD2に「=FILTER(A2:B101,ISEVEN((ROW(A2:B101))))」と入力します(⑪)。セルA2~B101のデータを「ISEVEN((ROW(A2:B101))」の条件で取り出します
偶数行(Qの行)だけが取り出されます。結果はスピルで表示されるので、数式をコピーする必要はありません

 複数の関数を組み合わせるのは煩わしいかもしれませんが、コピペの手間は省けます。最初に紹介したフィルターを利用する方法は簡単ですぐに試せるので、ぜひ活用してください。