[[20101209164242]] 『データの一覧表の中から等差数列による等間隔の行』(S) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『データの一覧表の中から等差数列による等間隔の行のピックアップ関数について』(S)

例えば、住所、氏名、年齢等データの入った一覧表の中からランダムではなく等差数列(1行目、4行目、7行目、10行目、… とか 1行目、5行目、9行目、13行目、… 等)等間隔で、それらの行をピックアップして別のシートに移動する そのピックアップの仕方の関数を教えて頂きたいのですがよろしくお願いします。

Excel 2007, Windows Vista です


 たとえばSheet1が一覧表だとして、J列に作業列として

 J1=IF(IF(ROW(A1)<初項,1,MOD(ROW(A1)-初項,公差))=0,ROW(A1),10^9)

 として最終行までフィルします。
 初項と公差はどこかのセルにするなり直接入力なりしてください。

 で、抽出シート側では

 A1=INDEX(Sheet1!A:A,SMALL(Sheet1!$J:$J,ROW(A1)),1)

 として縦横にフィル

 こんなのでどうですか?
 (momo)


 A1:=INDEX(Sheet1!A:A,ROW(A1)*3-2))    「*3」の「3」や「-2」の「2」は元表の行番号に合うよう調整して下さい。   (NB)

ありがとうございました。
当方は、まだまだ初心者ですので、これを解析しながら頑張ってやってみます。(S)

お世話になっております。数日前に質問をさせて頂きました。まだまだ初心者ですので 応用がきかず、再度、相談にのって頂けますでしょうか?

上記の方法で、うまくいきそうですが 表の中の1番目の人が初項1 この合わせ方が分かりません。
実際は元表の6行目が、一覧表の1行目の人であり、ここから初項1の数列が始ります。
それと、抽出されなかった人は他のシートにコピーして、抽出されたものとされなかったものをシート別にわけたい。

よろしくお願いします。(S)


 INDEX関数を理解していますか。INDEX関数の使い方がわかったとして、
 A1:=INDEX(Sheet1!A:A,ROW(A1)*3-2)) " Sheet1!A:A  "は抽出したいデータの列。
 B1:=ROW(A1)*3-2
 それぞれ下へコピー  でINDEX関数の働きがわかると思います。

 A列 1,4,7,10,・・・
 B列 2,3,5,6,8,9,・・・・   は
 A1:=ROW(A1)*3-2
 B1:=ROUNDUP(ROW(A1)*3/2,)
 それぞれ下へコピー          (NB)

ありがとうございました。頑張ってみます。(S)

A1:=ROW(A1)*3-2 だけでは 1,4,7,10,・・・になりますが、表の中のA1=INDEX(Sheet1!A:A,ROW(A1)*3-2))の表示は 2,5,8,11,・・・になり、1,4,7,10・・・になりません。

また、上記の[A1:=INDEX(Sheet1!A:A,ROW(A1)*3-2)) 「*3」の「3」や「-2」の「2」は元表の行番号に合うよう調整して下さい。]とはどのように調整すればいいのでしょうか?よろしくお願いします。(S)


 >INDEX関数を理解していますか。  
 ROW関数を理解していますか。 
「エクセル INDEX関数」で検索しても調べられます。 
「エクセル ROWX関数」で検索しても調べられます。   (NB)


ありがとうございまいました。単独では分かりますが、応用が理解できませんでした。
お手数をおかけしてすみませんでした。頑張ってみます。

 こんにちは。
>単独では分かりますが、応用が理解できませんでした。
そういうときは、少しずつ数式を増やしていくと、理解しやすいですよ。

  ※「_」セルは未入力または""
  [R/C]     [A]  [B]  [C]  [D]  [E]  [F]     [G]    [H]     [I]
   [1]    1行目    _    1    3    1    _   1行目  3行目   1行目
   [2]    2行目    _    2    6    4    _   2行目  6行目   4行目
   [3]    3行目    _    3    9    7    _   3行目  9行目   7行目
   [4]    4行目    _    4   12   10    _   4行目      0  10行目
   [5]    5行目    _    5   15   13    _   5行目      0       0
   [6]    6行目    _    6   18   16    _   6行目      0       0
   [7]    7行目    _    7   21   19    _   7行目      0       0
   [8]    8行目    _    8   24   22    _   8行目      0       0
   [9]    9行目    _    9   27   25    _   9行目      0       0
  [10]   10行目    _   10   30   28    _  10行目      0       0

 ☆ROW
  C1 =ROW(A1) →C1:C10フィルコピー
  D1 =ROW(A1)*3 →D1:D10フィルコピー
  E1 =ROW(A1)*3-2 →E1:E10フィルコピー

 ☆INDEX
  G1 =INDEX(A:A,ROW(A1)) →G1:G10フィルコピー
  H1 =INDEX(A:A,ROW(A1)*3) →H1:H10フィルコピー
  I1 =INDEX(A:A,ROW(A1)*3-2) →I1:I10フィルコピー
 
(コタ)

 もう見ていないかな?
 別な方法で、こんなのは

 オートフィルタ若しくは、フィルタオプションを使いますのでListに列見出しを付けます
 次に、最終列の後ろの列を作業列に使用します(住所、氏名、年齢がA、B、C列ならD列)
 作業列のD2(D1は列見出しなので)に「=MOD(ROW()-2,3)」と入れます
 この場合、2はデータ先頭行位置(詰まりA2の2)、3は引き抜く行の差(1行、4行、7行なら、4-1=3の3)とします
 此れを、データ最終行迄Copyします
 D2以下に、0、1、2の繰り返しの数値が出ますので、オートフィルタを掛けて下さい
 次に、1行、4行、・・の抽出なら、D列の抽出条件で0を選択しCopy、出力シートを選び其処へペースト
 1行、4行、・・以外の抽出なら、D列の抽出条件で1、2を選択しCopy、出力シートを選び其処へペースト
 では?

 (Bun)


大変、ありがとうございました。皆様のご教授に感謝いたします。お手数をおかけいたしました。
頑張ります。(S)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.