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

例えば、A8からAZ8にデータが入力されている状態で、D8→J8→P8・・・というように
等間隔のデータだけを連続で抽出したいのですが、どうしたらよいでしょうか。
エクセルは勉強中なので、できれば関数の説明も込みでお願いします。

質問者からの補足コメント

  • 回答ありがとうございます。
    記載不足ですいません。
    この場合、同じ行から右に6づつ等間隔で値を取得します。

    No.3の回答に寄せられた補足コメントです。 補足日時:2020/02/28 08:07
  • 回答ありがとうございます。
    記載不足ですいません。
    この場合、同じ行から右に6づつ等間隔で値を取得します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/02/28 08:07

A 回答 (5件)

こんにちは



>等間隔のデータだけを連続で抽出したいのですが
連続したセルに抽出するとして、列(行)が1造丘したら参照先のセル位置は6増加するように、セル位置を列(または行)番号で指定する仕組みにしておけば良いです。

例えば、同じ行に連続して抽出するものとして、
 =INDEX(8:8,COLUMN(A1)*6-2)
を入力して、右方にフィルコピーすることでできると思います。
また、
 =OFFSET($D8,,COLUMN(A1)*6-6)
のような式にして、フィルコピーでも同様の結果になるでしょう。

>できれば関数の説明も込みで
COLUMN(A1)は1を意味しますが、右方向にフィルコピーすることで、2、3、4・・と順に数が増加してゆきます。
これを6倍することで増加率を6として列の参照位置を決めるようにすれば良いという仕組みです。
数値指定で列位置を決められる関数の例として、上記ではINDEXやOFFSETを利用して目的の参照位置を得られるようにしてあります。
    • good
    • 1
この回答へのお礼

助かりました

回答して頂きありがとうございます。
INDEX関数、OFFSET関数について教えて頂き大変助かりました。
「一定行ごとに等間隔でデータ抽出」は調べたらでるものの、列の参照位置からデータを取得する方法はあまり載っていなかった為、とても参考になりました。
特に記載して頂いた、
=OFFSET($D8,,COLUMN(A1)*6-6)
の(A1)も、何故A1を指定してるんだ?
と思った疑問も、列の参照位置という
ことで納得ができました。
改めて、丁寧な説明をして頂きありがとうございます。

お礼日時:2020/02/28 10:16

補足 有り難うございます。




できました、

一般式、
=IF((26*2-3)/6>=ROW(A1),OFFSET($A$7,1,(ROW(A1)-1)*6+3,1),"")

ファイル、
https://1drv.ms/x/s!AjviygfJDgV_3k3YHW82WsvL2J8c

尚、

ファイルは 1度、
ローカルに 別名保存して、
其の保存ファイルを 扱うように、
してくださいね、

別名保存でないと、
意味が 無いですよ。


さすれば、

閲覧も、編集も、
叶うものと 思いますよ。


さて、

解説ですが、

そうは 難しくも、
構えなくても 良い、
内容です。


概ね、

一次式による 数学的な、
値の 精製です、

4,10,16,22,…
と いった、
数列を 精製できれば、
其れで ほぼ、
終わったような ものです。


と なれば、

簡単な話だ、
と なりますよね、

式としては、
m=(n-1)×6+4[n|nは 自然数]
此だけですね。


然し、

困ってしまい、
よく 立ち止まってしまう、
点なのですが、

この「n」の 精製法に、
行き詰まるのですよね。


其処で、

シート内で 連番を、
探すと、
行ナンバー、列ナンバー、
先ず 此等が、
見つかります。


ご安心ください、

行ナンバー取得方法も、
列ナンバー取得方法も、

ちゃんと 用意されています。


実際には、

行ナンバーは ROW(指定セルアドレス)
列ナンバーは COLUMN(指定セルアドレス)

此等で 取得できます。


では、

一般式に 戻りましょう、

先筆式中に、
(ROW(A1)-1)*6+4 …①
(※注:都合により、やや 修正しています。)
と ありますが、

此の中の、
ROW(A1)
は、
下向きフィルに 連れて、
ROW(A1)、ROW(A2)、ROW(A3)、…
と 変化するように、
仕様が 決められています。


で、

ROW(A1)→1
ROW(A2)→2
ROW(A3)→3

と 返してくれますから、

フィルに 連れて、
正に 自然数を、
手軽に 精製してくれます。


此処で、

ROW(A1)
此の部分を 自然数nに、
置き換えると、


先の、

数学一次式、
(n-1)*6+4
と、
其のものと なります。


次に、

読み出すべき 列位置が、
此処迄で 解りました、

では、
実際に 読み出すには、
如何するか、
此の点に 話が、
移ります。


でも、

此も簡単です、

私は こうした場合、
行ナンバーと 列ナンバーを、
個別に 単純に、
指定するだけで 機能する、
OFFSET構文を 持ちいます。


説明は 此方、

http://officetanaka.net/excel/function/function/ …

新筆の 式では、

OFFSET($A$7,1,①-1,1) ②
此処に なります、
(※注:①-1と しているのは、
   相対的な 読み出し位置の、
   都合です。)


更に 見ていきます、

先筆の 式に、
②を 適応すると、

=IF((26*2-3)/6>=ROW(A1),②,"")
と なりますよね。


此の内の、

26*2-3)/6
では、
何カ所 参照すべき、
列が 存在するか、
算出しています。


残りの、

IF構文ですが、
解説は 此方、
https://www.becoolusers.com/excel/if.html


如何でしょうか、

説明は 一旦、
此処迄ですが、

是非 質問して、
くださいね。
「[エクセル関数]等間隔に値を取得する方法」の回答画像5
    • good
    • 1
この回答へのお礼

助かりました

回答して頂き有り難う御座います。
値の算出から関数の詳細まで、コマンドに
ついての細かな説明がされていて、
ファイルまで作成して頂いたこと本当に感謝致します。等間隔に取得した値を縦方向にフィルハンドルして出力する関数についての説明と記載は、書いてはいませんが自分が求めていた箇所になります。
すいません、本当はあなたの回答をベストアンサーにするべきなのですが、質問コーナーの仕様を理解しておらず、1人しか選べないことを今知り、最初に回答して頂いた方から
選ばせていただきました。申し訳ありません。

お礼日時:2020/02/28 10:50

》 D8→J8→P8・・・というように等間隔の…


それつて、何処がだういふ風に等間隔ですか?!
この回答への補足あり
    • good
    • 1

cells関数を使おう。

    • good
    • 0

行は 同じで、


いいのですか?
この回答への補足あり
    • good
    • 0

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

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


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