• ベストアンサー

エクセルで等間隔のセルの抽出

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

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 ■数式で抽出  B1に=INDEX(A:A,(ROW(A1)-1)*10+1)を入力、下方向にコピー ■数式以外で抽出  B1に#A1、B2に#A11を入力、A1:A2を選択して下方向にコピー、編集→置換で「#」を「=」に一括置換

bunbun1234
質問者

お礼

早速のご回答ありがとうございます。 助かりました。!! 数式以外の抽出方法で簡単にできました。 数式の抽出方法は、まだ理解不十分ですが、今後のために時間に余裕の あるときに勉強します。 取り急ぎお礼まで。

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答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すなわち空の場合には空にして、そうでない場合にはそのセルの値を表示しなさいとの意味になります。

bunbun1234
質問者

お礼

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

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! すでに解決しているみたいなので余計なお世話かもしれませんが・・・ B1セルに =OFFSET($A$1,(ROW(A1)-1)*10,,1) としてオートフィルで下へコピーの方法もあります。 失礼しました。m(__)m

bunbun1234
質問者

お礼

ご回答ありがとうございます。 これは、理解できました!! 色々な方法が、あるのですね。 大変参考になりました。 本当にありがとうございます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えば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)))

bunbun1234
質問者

お礼

早速のご回答ありがとうございます。 関数を知っているといろいろとできるのですね。 ロジックが理解できないのが、悲しいですが・・・ 時間があるときで結構ですので、簡単にロジックを教えて頂けると幸いです。 自分でも調べ、考えましたが、いまひとつ理解できません。 よろしくお願い致します。

関連するQ&A

  • Excel2010 フィルタで抽出できない

    Excel2010(WindowsXP)のフィルタ機能で抽出できない場合があるようなのですが そういうものでしょうか? 以下のような10000行以上の重複しない14桁のデータで 10000行目の前後に空白セルがある場合 フィルタでB列の「10000000010003」以降のデータが抽出できません。 左からA列、B列 a b 1 (空白セル) 2 10000000000002 3 10000000000003 4 10000000000004 5 10000000000005 (この間も連続データ) 9997 10000000009997 9998 10000000009998 9999 10000000009999 10000 10000000010000 10001 10000000010001 10002 10000000010002 10003 10000000010003 10004 10000000010004 10005 10000000010005 10006 10000000010006 10007 (空白セル) 10008 10000000010008 10009 10000000010009 10010 10000000010010 ---

  • エクセルの表から座標セルの抽出(関数で)

    エクセルの表から関数で条件に合う座標セルの値を抽出したいのです。 例 空白|い|ろ|は|に| X   |2|6|9|7| Y   |8|4|1|5| Z   |A|3|B|0| このような5列4行の表があったとき A1セルに「ろ」、A2セルに「Y」の入力でA3セルに「4」 A1セルに「は」、A2セルに「Z」の入力でA3セルに「B」を出したいです。 申し訳ありませんが教えていただけると助かります。よろしくお願いします。

  • excelで条件に一致するデータ全てを抽出する方法

    現在、エクセル2003を使用しています。 A列・B列・C列にデータが入力されています。 ただし、空白セル(空白行)もあります。 A列に“@Name”とデータ入力がある場合 同じ行のC列の値を抽出したいと思います。 A列に@Nameは複数ありますが、C列の値は それぞれ違いますので、データの集計先はF列に 全て抽出をしたい。 なにか良い方法(VBAや関数)がありましたら 教えてください。

  • エクセルで連続するデータの個数だけカウントする

    エクセルは2013を使用しています。 シートには各セルに「○」 「×」 「□」 「空白」が入力されています。    A   B  C 1  ○   ○ 2  × ○   3  × ○ □ 4     ○ □ 5  ○ × □ 6  × □ ○ 7  ○ □   8       ○ 計  2 5 3 ※A列の計・・・×が連続している ※B列の計・・・○と□が連続している ※C列の計・・・□が連続している このように連続するデータの個数だけをカウントする方法を教えて下さい。 よろしくお願い致します。

  • エクセルでセル移動について

    エクセルのA1からD10の表に縦に数値を入力します。 各列によって空白のセルがあります。 A列の入力が終わればB1に、B列の入力が終わればC1に セル移動するにはどうすればいいでしょうか? (空白セルがあるため、Ctlキー+↑キーでは上手くいきません。) 教えて下さい。よろしくお願いします。  

  • エクセルで、可視セルだけにコピペをしたい。

    宜しくお願い致します。 例えですが・・・ A列にはランダムで色んな果物の名前 B列には果物の色 C列はすべて空欄 (1)A列をオートフィルタで「りんご」を抽出 (当然ですが、抽出された行は飛び飛び状態です。) (2)抽出したデータのみ、C列に「おいしい」と入力する。 このようにいたってシンプルな作業なのですが、 抽出した状態で、C列の一番上のセルに「おいしい」と入力し、 それをCtrl+Cでコピーし、Ctrl+↓キーで一番下まで貼り付け をしたら、C列の可視セル以外のところにも貼り付けられてしまったのです。こういうやり方は間違ってるのでしょうか。 ためしに、新規にexcelを開いて、同じようにコピペしたら 可視セルのみ貼り付けされてたんです。 状況によっては、上記のやり方だと可視セル以外も貼り付けられてしまうことがあるのでしょうか。 分かりにくくて申し訳ありませんが、宜しくお願い致します。 あるんでしょうか。

  • エクセル 文字が表示されたセルを抽出したい

    エクセルの関数を教えて下さい。    A     B     C     D   1 りんご              りんご 2       プリン        プリン 3             紅茶   紅茶 4 バナナ              バナナ 5      6             緑茶   緑茶 上記のような表があります。(A~は列、1~は行番号です) A1~C6までは、IF関数で、条件にあった場合に“りんご”などを表示、そうでない場合には空白と なるような式が入っています。 そして、D列のように、それぞれの行に表示されている文字を抽出、何も表示されていない場合は空白としたいのです。 D列にはどういった式を入れればよいかを教えて下さい。 ※各行に表示されるのは1つのセルのみで、例えばA1のセルとC1のセルに文字が表示される ことはありません。A1に文字が表示されている場合は、必ずB1・C1のセルは空白です。 宜しくお願い致します。

  • エクセルでフィルター抽出したセルを効率良く数えるには?

    恐縮ですが質問させて頂きます。 エクセルで膨大なデータの中からある条件でフィルター抽出したセルを数えるにはどうしたらいいんでしょうか? 例えばまったくフィルターをかけていない状態であればマウスで範囲を選択しようとすると左上の名前ボックスに自動的に列や行の数字が出ますよね? ただフィルターで抽出したデータは行が“飛んでいる”ことがあるので表示されていないセルの数まで数字が入ってしまいます。 念のため例を挙げると・・・  A,B,Cの設問に回答されたデータがあるとします。 1行目の鈴木さんはAと回答、2行目の佐藤さんはBと回答、3行目の高橋さんはAと回答。フィルターでAと回答した人を抽出すると2行目の佐藤さんのセルは表示されないのですが、表示上連続して見える鈴木さんと高橋さんのセル(計2行)の範囲を選択すると3R(行)とでます。これだと数百件から数千件あったりするとすごく数えにくいんです。お教えいただけると大変助かります。よろしくお願いします。

  • エクセル2000で文字列から数値を抽出したい。

    エクセル2000で文字列から数値を抽出したい。 ワークシートのA列に下記の文字列が入力されています。 A1セル="123456 日本男子 54,321 7,654,321 12,345" A2セル="234567 東京都子 1,234 2,345 5,321" A3セル="345678 大阪太郎 99 689 9,876" データ間はスペースで区切られています。 後方2番目の数値をB列に取出す方法を教えて下さい。 B1セル=7,654,321 B2セル=2,345 B3セル=689 よろしくお願い致します。

  • excelのデータ抽出

    縦軸の条件と横軸の条件からデータを抽出する方法を教えてください。 以下のような表があります。    A  B   C   D   E  ・・・・ 1    0.5  2.5  3.1  5.5 2 40   2  5   10  3 3 55 4 35 1行およびA列の値を別セルに入力して、クロスするデータを出したいのですが、例えば別セル(1)に40と入力し別セル(2)に5.5と入力すれば、別セル(3)に3と抽出したいです。 また、出来れば別セル(2)に入力する値が表にない場合、入力した値より大きな値で一番近い値を読み取れればベストなんですか。 例えば別セル(2)に5.4と入力した場合には5.5の列を抽出 なにか良い方法はありますか? よろしくお願い致します。

専門家に質問してみよう