[[20140520094221]] 『INDEX MATCH関数』(コニ―) ページの最後に飛ぶ

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

 

『INDEX MATCH関数』(コニ―)

INDEXとMATCH関数で、日付を検索しています。
該当データがない場合、関数の頭にISERROR を入れて”なし”と表示しているので、
該当データがない時は”なし”と出ますが、
片方は一致して、片方が一致しない場合(←日付が空白)、
結果欄に1月0日 と表示になってしまいます。
日付の表示形式を検索側は検索先に合わせてm"月"d"日"にしているからなのかも
しれませんが、回避する方法はないでしょうか。

=IF(P2="","",IF(ISERROR(INDEX(テスト!$D$3:$AU$110,MATCH($M2,テスト!$D$3:$D$110,0),MATCH($P2,テスト!D$3:AU$3,0))),"なし",INDEX(テスト!$D$3:$AU$110,MATCH($M2,テスト!$D$3:$D$110,0),MATCH($P2,テスト!D$3:AU$3,0))))

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


 1月0日が表示されなければいいんだったら
 表示形式を m"月"d"日";; (← 「;;」をつける)
 
 > 該当データがない場合、関数の頭にISERROR を入れて”なし”と表示しているので

 2010だったらISERRORじゃなく、IFERROR を使った方がいいよ。
 
 > INDEX(テスト!$D$3:$AU$110 

 どうでもいいっちゃ、どうでもいいけど
 D列と3行目を範囲に含める必要があるの?
  
(名無しのおっさん) 2014/05/20(火) 11:06

ありがとうございます。
使用する人が2003の可能性があったのでIFISERRORで作っていました。

わかりづらくて申し訳ございません。

表から、商品名と日付が両方一致した場合、表の日付を表示したいのですが、
商品名が一致して、日付が一致しない場合(検索先の日付が空白)答えが1月0日になります。
商品名がない場合や、商品名はあるけど日付がないものは”なし”表示になります。

表示形式を m"月"d"日";;にしますと確かに空白になりますが出来れば”なし”と表示したいのです。 
(コニ―) 2014/05/20(火) 11:49


 > 表示形式を m"月"d"日";;にしますと確かに空白になりますが
 > 出来れば”なし”と表示したいのです。

 表示だけでいいんだったら
 表示形式を m"月"d"日";;"なし"

 エラーになる場合の「なし」と整合性を持たせるなら
 数式の "なし" → 0 に変更(表示形式じゃなく数式の方)
  
(名無しのおっさん) 2014/05/20(火) 12:00 追記 12:15

表示形式だけ変えると その後フィルタで検索かけた時に 表示形式で"なし"にしたものと
計算式で"なし"が求められたものが別になってしまうので、
計算式で解決したいです。

(コニ―) 2014/05/20(火) 13:07


 > 表示形式で"なし"にしたものと 
 > 計算式で"なし"が求められたものが別になってしまうので 

 数式の "なし" を 0 にすれば同じになるでしょ?

 > 計算式で解決したいです。

 範囲とか絶対参照のつけ方とかよくわからんとこがあるけど

 ……,IF(ISERROR(1/INDEX(Sheet2!$D$3:$AU$110,……
        ~~~~~
 Sheet2 → テスト
 
(名無しのおっさん) 2014/05/20(火) 13:19 追記 13:23

ありがとうございます。
 ……,IF(ISERROR(1/INDEX(Sheet2!$D$3:$AU$110,……
       ~~~~~
しかし 1/を追加したら1月0日は なし表示になりましたが、
今まで算出されていた部分が1月0日になりました。

説明がうまくできなくて申し訳ございません。

(コニ―) 2014/05/20(火) 14:51


 > しかし 1/を追加したら1月0日は なし表示になりましたが、
 > 今まで算出されていた部分が1月0日になりました。 

 1/ を追加するのは ISERROR のとこだけでっせ?
 
 こっち(↓)はつけたらあきまへんw

 ……,"なし",INDEX(テスト!$D$3:$AU$110,……
      ~~~~   
 どうでもいいっちゃ、どうでもいいけど、
 個人的には 1/ より 0/ の方がいいような気がしてきたw
 
(名無しのおっさん) 2014/05/20(火) 15:35

 >片方は一致して、片方が一致しない場合(←日付が空白)、 
   結果欄に1月0日 と表示になってしまいます。 
   日付の表示形式を検索側は検索先に合わせてm"月"d"日"にしているからなのかも 
   しれませんが、回避する方法はないでしょうか。 

 > =IF(P2="","",IF(ISERROR(INDEX(テスト!$D$3:$AU$110,MATCH($M2,テスト!$D$3:$D$110,0),MATCH($P2,テスト!D$3:AU$3,0))),"なし",INDEX(テスト!$D$3:$AU$110,MATCH($M2,テスト!$D$3:$D$110,0),MATCH($P2,テスト!D$3:AU$3,0))))

 IFを解析。

 ・P2セルが空白なら 空白 
 ・INDEX(…,MATCH(M2,…),MATCH(P2,…))がエラーなら「なし」
 ・出なければ INDEX(…)を返す。(M2×P2を基にテストシートから)
 ・けど、日付空白なら「1月0日」になる。
   →1月0日はマトリックスで検索して返った結果が「0」だよね?

 まだ片方ってのが全然わからんけど。

 M2に「日付」 P2に「商品名」が入力されていて
 テストシートのD3:AU110の範囲を見る。

 ってこと?

 なら M2が空白(文字列)なので「0」になるんでないの?

 =IF(OR(P2="",M2=""),"",・・・) に変更

 ※めちゃ憶測
 
(GobGob) 2014/05/20(火) 15:47

(名無しのおっさん) 様

0/をどこにいれるのかわかりません(TT)

(GobGob)様

IFの解析は書かれている通りです。
P2が空白の場合は必ずM2も空白なのでP2しかIF関数を組みませんでした。

1月0日表示になるのは INDEX(…)範囲内で、空白だった場合です。
しかし エラーなら「なし」としているので 何故なのかなと。

表示形式をm"月"d"日"にしているのも影響しているのでしょうか。
(コニ―) 2014/05/20(火) 17:48


 > 0/をどこにいれるのかわかりません(TT) 

 =IF(P2="","",IF(ISERROR(0/INDEX(テスト!$D$3:$AU$110,…… 
            ~~~~~ 
                         ↑ ここだけ、この1ヶ所だけ
 
   
 ……,"なし",INDEX(テスト!$D$3:$AU$110,……
     ~~~~~
      ↑ ここは何も追加したらあきまへんw
 
(名無しのおっさん) 2014/05/20(火) 18:26

ありがとうございます。
INDEX(…,MATCH(M2,…),MATCH(P2,…)) で空白の部分についても「なし」と表示されました。

0/を追加する事で何故解決したのですか?

(コニ―) 2014/05/21(水) 08:42


 > 0/を追加する事で何故解決したのですか?

 何も入力してない空白セルを参照したらエラーになると思ってるようだけど、
 まずそこからして間違い。

 例えばB1セルに =A1 の式を入れる。
 A1セルが空白(未入力)だったら、B1は「0」になる(エラーにはなりまへんw)
 それはINDEX関数でも同じこと。

 0 が表示されてるB1の表示形式を日付にしたら 1900/1/0 などとなる。
 表示形式が m"月"d"日" だったら 1月0日になる。
 つまり「1月0日」が表示されるということは「0」が返ってるってこと。
 ここをしっかり押さえようw

 質問のINDEX関数が返す値は
 (1)ちゃんとした日付(シリアル値)
 (2)0
 (3)#N/Aエラー(検索値が見つからない場合)
 のどれか。

 だから 0 が返った場合もエラーになるようにすればいい。

 A1に 0 を入力して、B1に =0/A1 という式を入れてみればわかるけど #DIV/0!エラーになる。

 0/INDEX でも同じ。

 0/INDEX で、INDEX関数が返す値が
 (1)ちゃんとした日付なら「0」(エラーにはなりまへんw)
 (2)0なら #DIV/0!エラー
 (3)#N/Aなら #N/Aエラー

 ISERROR関数でエラーだったら「なし」となるようにしてあるんだから
 空白の場合(0が返った場合)
 検索値が見つからなかった場合(#N/Aが返った場合)
 この2つは「なし」と表示されるってこと。
 
(名無しのおっさん) 2014/05/21(水) 15:02

名無しのおっさん 様

分かりやすい解説ありがとうございました。
とても勉強になりました。
(サリー) 2014/05/22(木) 08:55


コメント返信:

[ 一覧(最新更新順) ]


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