おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 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 については各自ヘルプをご覧下さい. PR |
カレンダー
カテゴリー
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
アクセス解析
カウンター
|