プロが教えるわが家の防犯対策術!

例えば、A1~A100にデータが入力されている状態で、A1,A11,A21というように等間隔のデータだけを列Bに空白のセルを作らず連続して抽出したいのですが、どうしたらよいでしょうか。
即ち、A1 → B1,A11 → B2、A21 → B3、・・・・

エクセル不慣れなもので、よろしくお願い致します。

A 回答 (4件)

一例です。


■数式で抽出
 B1に=INDEX(A:A,(ROW(A1)-1)*10+1)を入力、下方向にコピー

■数式以外で抽出
 B1に#A1、B2に#A11を入力、A1:A2を選択して下方向にコピー、編集→置換で「#」を「=」に一括置換
    • good
    • 13
この回答へのお礼

早速のご回答ありがとうございます。
助かりました。!!
数式以外の抽出方法で簡単にできました。

数式の抽出方法は、まだ理解不十分ですが、今後のために時間に余裕の
あるときに勉強します。

取り急ぎお礼まで。

お礼日時:2010/11/16 16:13

回答No2です。

お尋ねの件ですがお示しした式は次のようですね。

=IF(COUNTIF(A:A,ROW(A1)*C$1-(C$1-1))=0,"",INDEX(A:A,ROW(A1)*C$1-(C$1-1)))
この式をよく見たら誤っていました。次の式が正しいですね。訂正をお願いします。

=IF(INDEX(A:A,ROW(A1)*C$1-(C$1-1))=0,"",INDEX(A:A,ROW(A1)*C$1-(C$1-1)))

この式をB1セルに入力してそれを下方にオートフィルドラッグすればB2セルでは次のような式になりますね。
=IF(INDEX(A:A,ROW(A2)*C$1-(C$1-1))=0,"",INDEX(A:A,ROW(A2)*C$1-(C$1-1)))

このように下方の行になればROW()の値のみが変化することになりますね。つまりROW(A1)=1からROW(A2)=2に変わっています。
なお、C1の行番号に$のマークを付けることで絶対参照の形となって行番号は下方にオートフィルドラッグしても変わりません。

B1セルではROW(A1)*C$1-(C$1-1)の値はC$1のセルの値が10の場合には1*10-(10-1)で1になりますね。また、B2セルでは2*10-(10-1)で11になります。同様にB3セルでは21、B4セルでは31というように変化します。

INDEX(A:A,ROW(A1)*C$1-(C$1-1))の式は関数の中で指定された行と列が交差する位置にあるセルの値を取り出すための式で、通常はINDEX(範囲,行番号,列番号)の形で使われます。ここでは範囲としてA:Aを使っていますのでA列のみを範囲としています。その場合には列番号を関数の引数として使う必要がありません。行番号だけでよいのです。
したがってINDEX(A:A,ROW(A1)*C$1-(C$1-1))の意味はA列で1行目のセルの値を取り出すことになります。B2セルではA列で11行目のセルの値を取り出すことになります。

=IF(INDEX(A:A,ROW(A1)*C$1-(C$1-1))=0,"",INDEX(A:A,ROW(A1)*C$1-(C$1-1)))

の式ではINDEX関数で取り出したセルの値が0すなわち空の場合には空にして、そうでない場合にはそのセルの値を表示しなさいとの意味になります。
    • good
    • 1
この回答へのお礼

非常にご丁寧な解説をいただき誠にありがとうございました。
良く分かりました。(^o^)/
とてもとても自力では、理解不能でしたので助かりました。
これからも何かあったら質問させてください。

お礼日時:2010/11/17 08:47

こんにちは!


すでに解決しているみたいなので余計なお世話かもしれませんが・・・

B1セルに
=OFFSET($A$1,(ROW(A1)-1)*10,,1)
としてオートフィルで下へコピーの方法もあります。

失礼しました。m(__)m
    • good
    • 2
この回答へのお礼

ご回答ありがとうございます。

これは、理解できました!!
色々な方法が、あるのですね。
大変参考になりました。

本当にありがとうございます。

お礼日時:2010/11/17 08:38

例えばC1セルに等間隔となる10を入力してからB1セルに次の式を入力して下方にオートフィルドラッグします。



=IF(COUNTIF(A:A,ROW(A1)*C$1-(C$1-1))=0,"",INDEX(A:A,ROW(A1)*C$1-(C$1-1)))
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

関数を知っているといろいろとできるのですね。
ロジックが理解できないのが、悲しいですが・・・

時間があるときで結構ですので、簡単にロジックを教えて頂けると幸いです。
自分でも調べ、考えましたが、いまひとつ理解できません。

よろしくお願い致します。

お礼日時:2010/11/16 16:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A