[[20170201134935]] 『LOOKUPとFIND関数の組み合わせ数式について』(FE) ページの最後に飛ぶ

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

 

『LOOKUPとFIND関数の組み合わせ数式について』(FE)

=LOOKUP(0,0/FIND(検査範囲,検査する文字列),表示したい値がある範囲)

この数式について解説できる方いらっしゃいますか。

検索範囲に、検索値(例:aaabbcbcc)の一部に一致する文字列(例:abb)があり、
検索値に部分一致すれば検索範囲内のデータを取得したくて調べていたところ、
この数式を見つけて思った通りの結果が得られました。

しかし、調べても、いまいちこの数式の理屈がわかりません。
数式検証機能で、配列数式で計算されていることが分かり、
一致した時は「-1」が返って、0/-1で0に一致する位置のデータを取得しているところまでは
理解したのですが、なぜ-1が返ってくるのかが分かりません。

今後のために勉強したいです。よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


すみません、例の文字列は適当な文字にしてしまったので、
もしかしたら例の条件でテストすると戻り値は-1ではないかもしれません・・・
(FE) 2017/02/01(水) 14:06

 >この数式を見つけて思った通りの結果が得られました。 

 その数式って正しくないように見えるんですけど・・(Findの引数の位置がおかしくないですか?)

 本当に、思った通りの結果が得られましたか?

 実際のデータの有り様についてですけど、
 部分一致(完全一致を含む)が、必ず一つだけと言うケースなんですか?

(半平太) 2017/02/01(水) 14:17


FINDの引数位置は合っています。

>部分一致(完全一致を含む)が、必ず一つだけと言うケースなんですか?

その通りです。検索範囲内の文字列の中の、どれか一つと検索値がある場合、
検索範囲のデータを取得します。

A1:B5の検索範囲で、A3の文字列と検索値の文字列の一部が一致する場合、B3の値が取得できる数式になっています。
(FE) 2017/02/01(水) 14:58


 >もしかしたら例の条件でテストすると戻り値は-1ではないかもしれません・・・

 前提が不明瞭に感じるんですけど、FIND関数がマイナスを返すことはありません。
 (多分、拾ってきた数式と自作数式は同じじゃないと思われます)

 0/数値(FINDの返り値) は 「0」 
 FINDで合致しなければ 「#VALUE!」

 合致データが1つしかないなら、配列は、1つの「0」と多数の「#VALUE!」で構成される。

 LOOKUPの検索値を「0」にすれば、配列の「0」のある位置(=合致した位置)がヒットするので、
 当然の結果が得られると思うのですが、どこが納得いかないのですか? (ヘルプを読みましたか?)

(半平太) 2017/02/01(水) 16:27


何度も確認しましたが、数式は実際使用しているものと同じです。

私も0が返ると思っていたら、-1が返ってきたので、
特殊な計算がされているのかな?と思い、確認した次第です。
(FE) 2017/02/01(水) 16:47


 質問が何なのか分からなくなって来ているのですけど・・まだ解決していないのなら、

 現象を再現できる具体例とそれについての疑問をもう一度記述してください。

 ーーーーーーー<追記>ーーーーーーーーーーーーーーーー 
 該当が1つしかないケースなら、拾って来た数式は、
 こんな数式だったんじゃないですか?

 D1セル =LOOKUP(0,-FIND("aab",A1:A4),B1:B4)

 <結果図>
  行  ____A____  ___B___  _C_  ___D___
   1  aa         ヒット1       ヒット2
   2  aaaabbcc   ヒット2              
   3  bb         ヒット3              
   4  aaa        ヒット4              

 (半平太) 2017/02/01(水) 18:19

回答ありがとうございます。
ですがなぜ数式を憶測で改変するのでしょうか…
私が使用している式は最初に記載した通りです。

答えてくださる気持ちは大変ありがたいですが、
そんなはずはない、とこちらの質問の内容(最初の数式)を無視されると
それこそ質問が何なのか分からなくなってしまいます…

新しい数式を必要としているのではなく、
最初の数式についての解説を希望していたので、
それを否定されるのでしたら、申し訳ありませんが回答は結構です。
せっかく答えてくださったのにすみません。
もっと勉強して自分で分かるようになろうと思います。
ありがとうございます。

(FE) 2017/02/01(水) 22:21


 >ですがなぜ数式を憶測で改変するのでしょうか…

 マイナスなんかになるハズがないからです。

 そんなに自分の数式が正しいと言い張るなら、
 この説明に沿って作った具体的な数式、およびそれでマイナスの配列が返る様なサンプルデータを掲示してください。
  ↓ 
 >=LOOKUP(0,0/FIND(検査範囲,検査する文字列),表示したい値がある範囲)

 (マイナスは勘違いだったとした場合)
 ご自分の数式で正しい値が返ってくる理由については、既に上の方で説明しております。

(半平太) 2017/02/01(水) 22:29


コメント返信:

[ 一覧(最新更新順) ]


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