
シートが2枚あり1枚は名簿シートです。
別シートのセルA1に名簿シートのコード番号を入力し
セルA2にVLOOKUP関数で式を下記のように入れています。
=VLOOKUP(A1,名簿!N:P,3,FALSE)
このとき値がブランクになるときがあるので
そのときは隣の列から数値を拾い出したいのです。
そこで
=VLOOKUP(A1,名簿!N:Q,4,FALSE)
だと思うのですがですが、自分でIFで式を組んだら
=IF(VLOOKUP(A1,名簿!N:P,3,FALSE)="",VLOOKUP(A1,名簿!N:Q,4,FALSE),VLOOKUP(A1,名簿!N:P,3,FALSE))
となりました。
一応、希望通りの答えが返されるのですが、
もっと簡潔な組み方はあるのでしょうか??
IFでなくても何か方法があるのでしょうか??
よろしくご教授お願いします。
No.1ベストアンサー
- 回答日時:
簡単かって言われると微妙なんですが、
=vlookup(A1,名簿!N:Q,4-and(len(vlookup(A1,名簿!N:Q,3,FALSE)),TRUE),FALSE)
という手口もあります。「3列目の長さが0じゃなければ3列目、0なら
4列目を返せ」と、if関数を使わずに言っています。
早速のご回答ありがとうございます。
仕事が終わってただいま家に戻ってまいりました。
上記の式を使って、希望通りの結果でした。
len関数に初めて出会いました。
早速helpで勉強してみます。
No.4
- 回答日時:
No.2です。
>式の違いで、ブック自体の重さが変わるとか、処理速度に違いが出るということはあるのでしょうか?
今回の場合は、質問欄の数式も私や他の回答者の数式も、書き方がちょっと違うだけで、結局VLOOKUPを2回行っていることには変わりはありません。
したがって、処理速度の違いはほとんどありません(感知出来ません)。
また、ファイルの重さ(容量)については、もちろん入力する数式が短いほど軽いでしょうが、今回程度の違いではほとんど差はないと思います。
何十のシートの何万行×数百列のセルに数式を書いたりしていない限り。
(実際には確認してませんが。)
ありがとうございます。
自分的にはこんなにたくさんの数式。。と心配してみたのですが、、お聞きできて安心しました。
また何かありましたら、よろしくお願いします。
No.2
- 回答日時:
こんにちは。
maruru01です。No.1の方の回答をちょっと変えただけですが。
=VLOOKUP(A1,名簿!N:Q,4-SIGN(LEN(VLOOKUP(A1,名簿!N:Q,3,FALSE))),FALSE)
数式が短いことと、簡潔(簡単)であるということは、必ずしも一致しません。
この場合も、私やNo.1の方の回答は確かに短いですが、ある意味難しくなっていると言えます。
この回答への補足
ご回答ありがとうございます。
上記の式で希望通りの結果でした。
> 数式が短いことと、簡潔(簡単)であるということは、必ずしも一致しません。
> この場合も、私やNo.1の方の回答は確かに短いですが、ある意味難しくなっていると言えます。
すみません初心者な質問なのですが、
式の違いで、ブック自体の重さが変わるとか、処理速度に違いが出るということはあるのでしょうか?(数式をほかにも使っていて、IFの式も150箇所くらい入れてます)
もしそうだとしたら、どちらの数式を使ったほうが、より負荷のかかりにくいものになるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
国立病院機構の採用者名簿に、...
-
新橋の名簿図書館について
-
Access]2つのテーブルを比較し...
-
iタウンページの電話番号や住...
-
同窓会名簿作成のための、個人...
-
Accessでレコードを別テーブル...
-
亡くなられた方の表現
-
同窓会名簿で、亡くなった方の記載
-
同期と給料に差がありました。 ...
-
社会福祉法人の略語は(株)のよ...
-
見学してみたいです。は敬語で...
-
補足ありがとうございますと 補...
-
「○日までに」の意味、その日は...
-
派遣社員です。私語がおおいと...
-
不動産業者から個人情報をLINE...
-
業界で使う@は単価、C/Sはケー...
-
上司の会議中に急ぎの用件があ...
-
「日本テクノ」という会社って...
-
派遣社員です。仕事がこなせず...
-
社会人で坊主はやめてね
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報