「エクセル 間引き」
「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列に上記の例を作成してありますのでご確認ください。
- Newer:Now関数から年のみ表示する方法
- Older:Word 2010・2007で差出人住所の既定値はどこに?
Home » Excel(エクセル)の関数・数式の使い方 » 検索・行列 » データを間引く方法−INDIRECT関数・ROW関数