[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート内の数値を計算式に利用する』(酢ライム)
基礎だと思いますが、教えて下さい。
指数関数的に増加する、あるグラフの傾きを出したく思っております。
元の値(最初の値)から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内を触ることは避けたく思います。
更新が衝突してしまいました。
OFFSETは初めての利用ですので、まずは関数の把握からしてみます。
以前の質問ではわかりにくかったので、書き直しました。
その内容でOFFSETでOKでしょうか。
大丈夫だと思いますが・・・。 INDIRECT関数もつかえますね。 同じ例の条件として =SUM(INDIRECT("C"&$C$1&":C"&$C$2))
(HANA)
LINEST内にINDIRECTとOFFSETを入れると、エラーが出てしまいました。
やり方が悪いのだと思いますが、そんなに難しいことなのでしょうか。
お手上げです(^o^;)/~
どの様な式を入れましたか? また、どの様なエラーが出ましたか?
なお、コメント記入の際は、その都度ご署名を御願いしますね。
(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)
一日かかりましたが、出来ました!
わかりやすい説明、本当に助かりました。
図々しいと思いますが、お時間ありましたら教えて下さい。
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.