[[20070715152549]] 『シート内の数値を計算式に利用する』(酢ライム) ページの最後に飛ぶ

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

 

『シート内の数値を計算式に利用する』(酢ライム)

基礎だと思いますが、教えて下さい。

指数関数的に増加する、あるグラフの傾きを出したく思っております。

元の値(最初の値)から10%上昇する点を開始点とし、最大値に達するまでの

グラフの傾き(近似曲線)を算出したく思います。

X軸が時間(s)、縦軸が値だとすると、、、

 A      B         C   
1 10%上昇開始点(s)    10
2 最大値到達点(s)      30
3 傾き       LINEST(C10:C30,A10:A30)

で出てくるのですが、このLINESTのC10、C30、A10、A30の10と30をC1,C2から

読み込んで、式の中に入れることはできませんか?

データが100列近くありますので、手入力でLINEST内を触ることは避けたく思います。


 OFFSET関数なんかは使えますかね?
 例えば SUM(C10:C30)の「10」と「30」を
 C1,C2セルの値で切り替えたいとき
=SUM(OFFSET($C$1,$C$1-1,,$C$2-$C$1+1))
 こんな式になります。
 A列を参照する場合は、基準をA1セルに変更してください。

 (HANA)

『シート内の数値を計算式に利用する』(酢ライム)

基礎だと思いますが、教えて下さい。

指数関数的に増加する、あるグラフの傾きを出したく思っております。

元の値(最初の値)から10%上昇する点を開始点とし、最大値に達するまでの

グラフの傾き(近似曲線)を算出したく思います。

X軸が時間(s)、縦軸が値だとすると、、、

 A      B         C   
1 10%上昇開始点(s)     6
2 最大値到達点(s)       9
3 傾き       LINEST(C6:C9,A6:A9)
4 (これより下に各データです)
5               1.09
6               1.1
7               1.2
8               1.3
9               1.5
10              1.4
11              1.2

で出てくるのですが、このLINESTのC10、C30、A10、A30の10と30をC1,C2から

読み込んで、式の中に入れることはできませんか?

データが100列近くありますので、手入力でLINEST内を触ることは避けたく思います。


Hanaさん

更新が衝突してしまいました。

OFFSETは初めての利用ですので、まずは関数の把握からしてみます。

以前の質問ではわかりにくかったので、書き直しました。

その内容でOFFSETでOKでしょうか。


 大丈夫だと思いますが・・・。
 INDIRECT関数もつかえますね。
 同じ例の条件として
=SUM(INDIRECT("C"&$C$1&":C"&$C$2))

 (HANA)

HANAさん

LINEST内にINDIRECTとOFFSETを入れると、エラーが出てしまいました。

やり方が悪いのだと思いますが、そんなに難しいことなのでしょうか。

お手上げです(^o^;)/~


 どの様な式を入れましたか?
 また、どの様なエラーが出ましたか?

 なお、コメント記入の際は、その都度ご署名を御願いしますね。

 (HANA)

HANAさん

署名、申し訳御座いませんでした。

下記、実際のデータです。

    A      F
4         25
5         86

求めたいのは、LINEST(F25:F86,A25:A86)とAVERAGE(F25:F86)です。

簡単なAVERAGEの方ですが、=AVERAGE(OFFSET($F$4,$F$4-1,,$F$5-$F$4+1))

としてみましたが、AVERAGE(F25:F86)と値が全く異なります。

(酢ライム)


 OFFSETの書式は
OFFSET(基準,行数,列数,高さ,幅)
 となっています。

 >OFFSET($F$4,$F$4-1,,$F$5-$F$4+1)
 F4-1    = 24 ~~~~~~  ^^^^^^^^^^^
 F5-F4+1 = 62
 ですから、この式は
 OFFSET($F$4,24,,62) です。
 これは
「F4セルから下に24行下がったセル(F28)から
 62行目までの範囲(F28:F89)」
 を表します。
[1]		
[2]		
[3]		
[4]	基準	←F4
[5]	1	
[6]	2	
[7]	3	
[8]	4	
[9]	5	
[10]	6	
[11]	7	
[12]	8	
[13]	9	
[14]	10	
[15]	11	
[16]	12	
[17]	13	
[18]	14	
[19]	15	
[20]	16	
[21]	17	
[22]	18	
[23]	19	
[24]	20	
[25]	21	
[26]	22	
[27]	23	範囲
[28]	24	1
[29]		2
[30]		3
[31]		4
[32]		5
[33]		6
[34]		7
[35]		8
[36]		9
[37]		10
[38]		11
[39]		12
[40]		13
[41]		14
[42]		15
[43]		16
[44]		17
[45]		18
[46]		19
[47]		20
[48]		21
[49]		22
[50]		23
[51]		24
[52]		25
[53]		26
[54]		27
[55]		28
[56]		29
[57]		30
[58]		31
[59]		32
[60]		33
[61]		34
[62]		35
[63]		36
[64]		37
[65]		38
[66]		39
[67]		40
[68]		41
[69]		42
[70]		43
[71]		44
[72]		45
[73]		46
[74]		47
[75]		48
[76]		49
[77]		50
[78]		51
[79]		52
[80]		53
[81]		54
[82]		55
[83]		56
[84]		57
[85]		58
[86]		59
[87]		60
[88]		61
[89]		62

 基準となるセルを何処にするのか、もう一度確認してください。

 OFFSET関数の使い方が分かったら、INDIRECT関数もお試し下さい。
 こちらの方が分かりやすいと思います。

 (HANA) 

HANAさん

一日かかりましたが、出来ました!

わかりやすい説明、本当に助かりました。

図々しいと思いますが、お時間ありましたら教えて下さい。

OFFSETやINDIRECTを使うのか、使わないのかわかりませんでした。

           A           B             
 [1] 0.1以上に達する時間      3      
 [2]
  [3]          0                0.04
  [4]          1                0.06
  [5]          2                0.09
  [6]          3                0.12
  [7]          4                0.11

であった時に、どこかのセルに”0.12”という数字を出したく思います。

MATCHだと思ったのですが、MATCHは検査値からセルNOを返すものでした。

(酢ライム)


 先にOFFSET関数を使った物しか思いつかず
 酢ライムさんには、要らぬ遠回りをさせてしまった様な気がして
 申し訳ないです。
(INDIRECT関数の方が、分かりやすいですよね・・・やっぱり。)

 気を取り直して・・・。
 MATCH関数は検査値の何番目に該当が有るかを返します。
 A1セルに0.1が入力されているとき
=MATCH(A1,B3:B7,1) =3
 となります。
 0.1以下の最大の値0.09は、検査範囲の先頭であるB3セルから数えて
「3番目」に出てきますからね。

 求める値は、それの一つ下なのですから
 INDEX関数や、HLOOKUP関数を使って
=INDEX(B3:B7,MATCH(A1,B3:B7,1)+1)
 としても良いかもしれません。
  何番目に出てくるのか、MATCH関数で一度求め
  INDEX関数で、それに+1した場所にある値を取り出します。

 「0.1以下の最大の値0.09の一つ下のセルに有る値」が欲しいので
=LOOKUP(A1,B3:B7,B4:B8)
 このようにしても良いかもしれません。

 参照先をわざとずらす と言う考え方で行くと
 先ほどのINDEX関数を使った式では
=INDEX(B4:B8,MATCH(A1,B3:B7,1))
       ~~~~~一つずらして     ^^+1が無くなる
 となりますが・・・素直に行った方が可愛らしいかもしれません。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


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