Home » Excel(エクセル)の関数・数式の使い方 » 検索・行列 » データを間引く方法−INDIRECT関数・ROW関数

データを間引く方法−INDIRECT関数・ROW関数

対象:Excel2002, Excel2003, Excel2007, Excel2010

「エクセル 間引き」
「Excelでデータを間引く方法」
といった検索が行われているのを見かけることがあります。

大量のデータが存在するとき、何らかのルールに従ってデータを間引く方法を探している方による検索です。

[スポンサードリンク]
いくつかの方法が考えられますが、まずは関数を使った方法をご紹介しましょう。
▼操作手順:大量データからデータを間引く
※A列にデータが入力されているときに、B列に2つおきのデータを表示する例
B1セルに
「=INDIRECT("A" & ROW(A1)*3)」
という数式を入力して下に向かってコピーする

ROW関数は引数に指定されたセルが何行目なのかを返す関数です。

「ROW(A1)」なら1行目なので「1」
「ROW(A2)」なら2行目なので「2」
「ROW(A3)」なら3行目なので「3」
が返されます。

ですから掛け算をした
「ROW(A1)*3」なら「3」
「ROW(A2)*3」なら「6」
「ROW(A3)*3」なら「9」
という値になるわけです。

INDIRECT関数は、文字列として引数に指定された参照先のセルの値を返してくれる関数です。

「INDIRECT("A3")」ならA3セルの値
「INDIRECT("A6")」ならA6セルの値
「INDIRECT("A9")」ならA9セルの値
が取得され返されます。

「=INDIRECT("A" & ROW(A1)*3)」
という数式は
INDIRECT関数の引数に、「"A"」に、文字列結合演算子「&」を使って「ROW(A1)*3」を結合した値が指定されています。

「ROW(A1)*3)」
の部分は縦方向にオートフィル(コピー)することで
 3・6・9・・・
となるわけですから
「=INDIRECT("A" & ROW(A1)*3)」

「=INDIRECT("A3")」
「=INDIRECT("A6")」
「=INDIRECT("A9")」
となり、
A3・A6・A9セルと3つおきのセルの値が返されるわけです。

もしA1セルの値を含んで2つおきのデータを取得したいのなら、
「=INDIRECT("A" & ROW(A1)*3-2)」
という数式にしてください。

4つおきにデータを取得したいのなら
「=INDIRECT("A" & ROW(A1)*5)」
A1セルの値を含んで4つおきのデータを取得したいのなら
「=INDIRECT("A" & ROW(A1)*5-4)」
としてください。

▼サンプルファイル(003764.xls 39KByte)ダウンロード

サンプルファイルのB:E列に上記の例を作成してありますのでご確認ください。

[スポンサードリンク]

Home » Excel(エクセル)の関数・数式の使い方 » 検索・行列 » データを間引く方法−INDIRECT関数・ROW関数

「検索・行列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.