[[20130821084624]] 『IFとVLOOKUP関数で式を作りたい』(ぐりむ) ページの最後に飛ぶ

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

 

『IFとVLOOKUP関数で式を作りたい』(ぐりむ)

[[20130820150620]] (前回)

 おはようございます、昨日書く込みをしたのですが、
 VLOOKUPを使った式を実行してみた所上手くいかず…
 どこか間違っているところがありましたらご指摘をお願いしたいです。

 ●やりたいことは、
 「結果」というシートのB列の文字列が、
 「リスト」というシートのA列946行目までの範囲にあるかないかを判断。
 「結果」シートのD列に、存在したら"○"で存在しなかったら"×"を入れたいです。

 ●作った式。
 =IF(VLOOKUP(B3,リスト!$A$1:$A$946,1)=B3,"○","×")

 ●問題点
 上記の式を「結果」シートのB3に入れ、実行したのですが、
 圧倒的に"○"の数が少なくおかしいな?と思って確認したところ、
 「リスト」シートのA列には確かにその文字列はあるのですが、
 ほとんどのものに「__」アンダーバーがついています。
 そこで、上記の式を直して、「__」がついていてもその文字列だと判断し、
 "○"をつけてくれ、それでもなかったら"×"をつけたいです。

 式のどこを変えれば上手くいくでしょうか?
 よろしくお願い致します。

 前回の続きに、そのまま書いてもらったらよかったと思います。

 別の式になっちゃいますが、COUNTIF関数はワイルドカードが使えるので
 "*"&B3"*" こういうのを、A列の中でカウントして
  1以上なら○ 0だったら×
 って作りにしてはどうですか?

 それと
 >=IF(VLOOKUP(B3,リスト!$A$1:$A$946,1)=B3,"○","×")
 だと、「×」ではなく「#N/A」になりませんでしたか?

 (HANA)

 ●HANAさん
 前回のは一旦解決したように書いてしまったので
 新しく作り直してしまいました。

 =IF(COUNTIF(PPOリスト!$A$1:$A$946,"*"&B3&"*")>=1,"○","×")
 こんな感じの式を入れてみたところいい感じに結果が出ました!

 >>「×」ではなく「#N/A」になりませんでしたか?
 確かにそうなりました。
 昨日やったときは何故か×がついたんですけど何故だ…

 (ぐりむ)

 できましたか、良かったです。

 続きに書いてもらった方が良い理由
  同じ事をやりたい人が、前スレを発見し 解決している様なのでためしてみるが うまくいかない
 なんて事があるかもしれませんし、何より
   今となっては状況が変わったので使えないですが
 稲葉さんは
 >VLOOKUP・・・検索値が見つからなかったら#N/Aを返す
 >ISNA・・・対象が#N/AならTrueを返す
 と書いておられますので、想定してアドバイスされた式と
 実際に作成された式は違っていると思います。

 前スレを見た稲葉さんは
 「その式じゃだめだよ」って追記して下さるかもしれません。

 今回は分けてあってもあまり関係ない内容ですが
 場合によっては 同じスレで経緯がわかりやすい方が良い 事もあると思います。
 どこでスレを分けるか ってのは難しい問題だと思いますが。。。

 >昨日やったときは何故か×がついたんですけど何故だ…
 ためした式には、ISNAを使っていて 投稿された式とは違うのでは??

 (HANA)

 ●HANAさん
 確かにそうでした、納得です。
 同じ問題のことについては次回から同じスレにしていこうと思います。
 もしかしたら稲葉さんに見て頂けたかもしれませんし、
 そこまで考えずに投稿してしまいました。

 >>ためした式には、ISNAを使っていて 投稿された式とは違うのでは??
 投稿した式は色々変えた後の式でした、申し訳ないです。

 今回のExcelの処理は一応終わってOKは頂いているのですが、
 また追加で関数を入れたりするかもしれません。
 今回のように問題点・変更点、追加点があり自分では分からないものは
 また質問させて頂きたいと思います。

 HANAさん丁寧に教えてくださり、本当にありがとうございました。
 また初歩的な質問も出てしまうかもしれませんが、
 お付き合い頂けたら嬉しいです。

 (ぐりむ)

 どっちも見てました。@稲葉
 んで、あとからCountifあったやーまーいっかーと、
 ぐりむさんの式の検証不足で、出来たならええか、
 ってな具合で眺めてました。

 申し訳ついでに、
 =Choose(min(3,countif(PPOリスト!$A$1:$A$946,"*"&B3&"*")+1),"×","○","◎")

 こんな感じでも出来ます。
 MIN・・・数値の最小値を返す。
   =MIN(5,2,8,6,3,4,7)だったら、一番数値の小さい2を返す
   最大値が決まっている数式によくつかわれます。
   その逆のMAXもあり、今度は最小値が決まっている場合によくつかわれます。

 CHOOSE・・・インデックス番号に対応する値を返す
   =CHOOSE(5,"A","B","C","D","E","F")だったら、5番目のEを返します。

 (稲葉) 

 ●稲葉さん
 こちらも見て頂いてありがとうございます。
 前回のスレの方に書かずすみませんでした。

 MIN、MAX、CHOOSEは高校時代に教わり、↑の式を理解できました。
 例としてあげて頂いて嬉しいです。
 なかなか関数を組み合わせることが苦手なもので、(特にINDEXさんは苦手)
 CHOOSE、MIN、COUNTIFの3つも合わせられるのが凄いなぁと驚いています。
 今まで2つくらいの関数しか組み合わせたことなかったです…笑

 まだまだ勉強不足なので色んな関数を覚えて扱えるようになりたいです。

 (ぐりむ)

コメント返信:

[ 一覧(最新更新順) ]


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