[[20150317182738]] 『指定されたアドレス間にある数値を別の列に表示さ』(ぽよよん) ページの最後に飛ぶ

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

 

『指定されたアドレス間にある数値を別の列に表示させたい』(ぽよよん)

例として$A$10から$A$50にある数値をB列に表示させたい場合、どのような関数にすればよいのでしょうか?
なるべく、マクロは使わずに行いたいと思っています。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 その『指定されたアドレス』というのは、どこに書いてあるのですか?
 それとも、関数の中に、書くのですか?

(β) 2015/03/17(火) 18:50


 要件がよく飲み込めないのですが

 B列の、開始したいセル(たとえばB1) に =INDEX(A$10:A$50,ROW(A1))
 あとは、これを下にフィルコピー とか??

(β) 2015/03/17(火) 18:56


説明下手ですみません。
指定されたアドレスというのが、$A$10や$A$50に該当します。

例として、以下の数値に対し、
A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15,…
0 , 3 , 5 , 10, 12, 0 , 10, 8 , 9 , 3 , 3 , 9 , 6 , 4 , 14 ,…

最初のアドレス:A5
最後のアドレス:A10

の間にある値を取り出さなければならないとわかっているとき、

取り出した値が、以下のようにするにはどうすればよいのでしょうか?

B1, B2, B3, B4, B5, B6
12, 0,10,8,9,3

のように書き出したいということです。
(ぽよよん) 2015/03/17(火) 19:03


 (β) 2015/03/17(火) 18:56 でレスしたような形では、だめなのですか?

(β) 2015/03/17(火) 19:20


これはどうでしょう。もし、始まりの行の番号がC1に書いてあるとして。
B1に
=indirect("A" & C1)
B2に
=indirect("A" & C1+1)
・・・・・
(スズメ) 2015/03/17(火) 19:23

 (β) 2015/03/17(火) 18:50 の質問に回答がなかったので、関数の中に領域を指定したけど
 もし、(スズメ)さんの回答のように、別セル(たとえばC1) に領域を記入して処理するなら。

 C1 : ここに抽出領域を指定 A5:A10 なら $A$5:$A%10

 で、B1 に =INDEX(INDIRECT($C$1),ROW(A1))
 これを下にフィルコピー。コピーしすぎのエラー対応は手抜き。

(β) 2015/03/17(火) 19:54


 まったくもって式の結果がわかっていませんが、例示から見ると重複を省いて結果を
 出そうとしているように見えるきがします。

 そういった数式は回答できませんけれど・・・onz
 マクロは希望されていないようなので、後はお任せで、コメントだけ。
(Mook) 2015/03/17(火) 20:02

	A	B	C
1	0	12	5
2	3	0	10
3	5	10	
4	10	8	
5	12	9	
6	0	3	
7	10		
8	8		
9	9		
10	3		
11	3		
12	9		
13	6		
14	4		
15	14		
 
 
 C1セルに開始行、C2セルに終了行を指定します。

 B1: =IF($C$1+ROW(A1)-1>$C$2,"",INDEX(A:A,$C$1+ROW(A1)-1))

 下にコピー
 
(JKT) 2015/03/17(火) 20:09

indirectのやり方はあくまで応急処置です。
確かにコピーしすぎが課題ですね。
私が考えた応急処置はC2に上限が書いてあるとして。
B1に
=if(C1<=C2,=indirect("A" & C1),"")
B2に
=if(C1+1<=C2,=indirect("A" & C1+1),"")
・・・・・

ですのでβさんのやり方をお勧めします。
(スズメ) 2015/03/17(火) 20:40


 確認です。

 元になる値はA列だけが対象ってことでいいんですよね?
 
 
 ついでに補足。

 > C1 : ここに抽出領域を指定 A5:A10 なら $A$5:$A%10

 $A%10 ← の「%」が何を表わしているのかわかりませんが、
 $A$10 の間違いだとすれば、別に絶対参照にする必要はありません。

 対象がA列だけで A5:A10  という指定の仕方を面倒だと感じないのなら

 > B1 に =INDEX(INDIRECT($C$1),ROW(A1))

 これにエラー処理を加えると

 B1: =IFERROR(INDEX(INDIRECT($C$1),ROW(A1)),"")

 ただし、INDIRECTは揮発性関数です。
 他の関数でも簡単にできるのなら、使わないに越したことはないと思います。
 
(JKT) 2015/03/17(火) 21:11

みなさま、回答ありがとうございます。
返事が遅くなり申し訳ありません。

JKTさんのご質問。
≫≫元になる値…
 A列のみ対象です。

βさんの内容で確認が取れました。
ありがとうございます。
(ぽよよん) 2015/03/18(水) 11:01


コメント返信:

[ 一覧(最新更新順) ]


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