[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『一覧の中から最終データ(文字列)を取り出す』(まるまる)
こちらの質問において、最終データが値のみではなく
「文字列と値が混在」の場合はどのようにしたらよろしいでしょうか。
教えてください。宜しくお願い致します。
バージョンはExcel2003です。
Alt+F11でVBAエディタが出てきますので、[挿入]-[標準モジュール]で出来た白いところに↓をコピペ。
Function lastvalue(target As Range) As Variant Dim c As Range For Each c In target If c.Value <> "" Then lastvalue = c.Value Next c End Function
シート上では
=lastvalue(A2:E2)
のように使います。
(ramrun)
こんばんわ。。 M2=INDEX(B2:K2,MAX((B2:K2<>"")*COLUMN(A1:J1))) Shift+Ctrlを押下したままEnterで確定。。 (kei)
=LOOKUP(1,0/(B2:J2<>""),B2:J2) で、どーかな? (1111)
◆(1111)さんとかぶりましたがUPします ◆数値の場合 M2=LOOKUP(10^10,B2:K2) ◆文字列の場合 M2=LOOKUP("ーー",B2:K2) ◆数値と文字列混在 M2=LOOKUP(1,0/(B2:K2<>""),B2:K2) または、 M2=LOOKUP(9^9,CODE(B2:K2),B2:K2) (Maron)
すべて試したところ、ばっちりできました!
早々にコメントいただき大変感謝しております。
ありがとうございました。
(まるまる)
ちょいと場所をお借りして。 Maronさん、 CODEにそんな使い方があったとは… 目からうろこでした。 今後、参考にさせていただきますっ (1111)
Maronさん、こんにちわ。。 ◆数値と文字列混在 M2=LOOKUP(1,0/(B2:K2<>""),B2:K2) または、 M2=LOOKUP(9^9,CODE(B2:K2),B2:K2)
/ や CODE の使い回しの原理が分かりません、お暇なときに教えてください。m(__)m (kei)
Maronさんじゃないっすけど、とりあえず/について。
/は四則演算の「割る」です。 TRUEやFALSEの論理値は四則演算すると、TRUE→1、FALSE→0になるんで。
たとえば 式を =0/(A1<>"") にすると、 A1が空白でなければ(TRUEなら) =0/1 で 0、空白なら(FALSEなら) =0/0 で #DIV/0!
つーわけで、単にまとめて {0,0,#DIV/0!,0,#DIV/0!} みたいな配列を返したかったんで、割り算してるだけです。
これでわかりますかね? (1111)
で、↓の式だと"d"が返ります。
=LOOKUP(5,{1,2,3,4},{"a","b","c","d"})
ヘルプには
で、降順で試してみると
=LOOKUP(5,{4,3,2,1},{"a","b","c","d"})
やはり"d"が返ります。多分、検索範囲が昇順でなければ、検索値以下の値がある最後の要素を返すようです。
あと検索範囲のエラー値は無視?してくれるようですよ。といっても検索範囲が全部エラー値だったり、検索値以下の値がひとつも無いとやはりエラーとなりますけど。これで/やCODEを使ってうまくいく理由がわかるんじゃないでしょうか。
私もはじめて知ったんですが、
=LOOKUP(1,0/(B2:K2<>""),B2:K2)
を打ち込んだセルを1つ選択し、数式バー上で 0/(B2:K2<>"") の部分をドラッグしてF9キーを押すと、返ってくる値が確認できるんですね〜
(ramrun)なにか違ってたらごめんなさい
1111さん、ramrunさん、ありがとうございます。 たった今帰宅しました。(遊びから・・デヘヘ ^^) 丁寧な説明ですので、良く理解できました。 達人たちのツールを少しでも自分のものにできればと・・・精進! 精進! また、鋭いご指摘と、ご教授をお願いします。。 (kei)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.