忍者ブログ
おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
[293] [292] [291] [290] [289] [288] [287] [286] [285] [284] [283]

vlookup関数を使って,以前悩んでいた話がおおむね解決したのでお知らせします.もともとの話はここ.どういう話だったかというと,タイトルの通り,列aの最大/最小値(x)を求めて(これは,最大値なら=max(a:a),最小値なら=min(a:a)で求められる;"a:a"はa列の最初から最後まで,ということ.max/min()は,()内に指定した範囲での最大値/最小値を返してくれる.),その値が含まれる列aの行数(p行目)を求めて,別の列bにおけるp行めの数値をみたい,ということ.

以前はifやらなんやらを色々使いましたが,今回はvlookup関数を使って,わりにシンプルにこの検索ができるようになりました.ただ,改良は必要かと思いますが…

vlookupの説明.

=vlookup(検索したい値(ここではxを指す.,検索範囲(xが存在する列を左端にし,bを含むようにする.たとえばa:b),xに対応する値を出したい列が,左端から数えて何列目にあるか(今回は2),true or false(trueは検索値未満のあたい,falseは検索値と完全に一致する値)
というわけで,今回の場合は,=vlookup(xを求めたセル(C1とか),a:b,2,false)とすれば良いわけですね.abcde…列それぞれの最大値x(a),x(b),x(c)…が,f列のどの値に対応するかを見たければ,
abcde+f列を既に使っているので,g1セルにとりあえずmax(a:a)としてa列の最大値を求める.これをhijk列にコピペすれば,bcde列の最大値が同様に求められる.g-k列の2行目に,6,5,4,3,2を入力しておく.g3セルに,=vlookup(g1,a:f,g2,false)と入力する.これをhijk列にコピペすれば,全てのアルファベットがひとつずつずれるので,たとえばh列においては=vlookup(h1,b:g,h2,false)という式が入力される.したがって,最大値であるh1を検索値にし,b列を左端にした上で,g列(さっき,a列の最大値におけるf列の値を出すために使っていた列ですね)までを検索するが,具体的に検索する列数は5行目,つまり,bcdef,でf行から対応する値をもってきてくれることになる,というわけ.もう一段階スマートにできる気もするけど,ひとまずはこれで満足しています.

あと,単にmaxがa列何行目にあるか,とかであれば,=match("contents",g1(*maxをここで求めているとして,ですよ),0)とすれば数値が返ってきますね.match については各自ヘルプをご覧下さい.

拍手[0回]

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
メールはこちらから
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
カウンター
コガネモチ