[[20161122115532]] 『index/matichでの複数条件について』(のじ) ページの最後に飛ぶ

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

 

『index/matichでの複数条件について』(のじ)

エクセルで、二つシートがあり以下のようになっています。
sheet1
サーバ名 クラス エラーコード
Aサーバ job   ◎◎ジョブで異常終了
Aサーバ press プロセスAは停止しています。
Bサーバ EV   メッセージコード:A123が記録されました



sheet2
サーバ名 クラス メッセージ              対応
Aサーバ JOB   *ジョブで異常終了*          1
Bサーバ press  プロセス*は停止しています。      2
Aサーバ EV   *メッセージコード:*が記録されました。 3



これをsheet1のサーバ名とエラーコードに
sheet2のサーバ名とメッセージ抽出条件として、Sheet2の対応を表示させたいと思っています。

indexとmatchを使って、sheet1のエラーコードにsheet2のメッセージを抽出条件
を出すことができるのですが、同じメッセージが他のサーバでも登録されており、sheet2のサーバー名とメッセージを使って、sheet1のエラーコードとsheet2の対応を表示させたいと思っています。

出力イメージ
sheet1のホスト名、sheet1のメッセージ、sheet2の対応 の3点が出力させたいです。

すみませんが教えてもらえないでしょうか。

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


 とりあえずSheet1のD列に対応を表示させる式。
 (クラスは検索に使用しない。

 Sheet1のD2セルに
 =IFERROR(INDEX(Sheet2!D$2:D$100,MATCH(1,INDEX(0/((Sheet2!A$2:A$100=A2)*(COUNTIF(C2,Sheet2!C$2:C$100))),0),1)),"")
 と入力して下へフィルコピー。

 なお、Sheet2のデータは100行目までに対応している。

 もっと件数があったり件数が少なくていい場合は式中の「$100」部分をすべて同じ値で変更してくれ。
(ねむねむ) 2016/11/22(火) 13:20

 あ、

 =IFERROR(INDEX(Sheet2!D$2:D$100,MATCH(1,INDEX(((Sheet2!A$2:A$100=A2)*(COUNTIF(C2,Sheet2!C$2:C$100))),0),0)),"")
 でも。
(ねむねむ) 2016/11/22(火) 13:34

ねむねむさん、
ご丁寧にありがとうございました。

自分はやりたかったことがばっちりこれで対応できます。

でも、sheet2のデータが約5万件あり、
sheet1の1が約5000件あると、再計算に時間がかかってしまいますね、、、

でも、非常に助かりました。
早急にやりたいことがあり、これでできます。

ありがとうございました。
(のじ) 2016/11/22(火) 14:09


たびたびすみません。
ねむねむさんにいただいた条件に加えて、クラスも一致しないと希望する答えが出てきませんでした。

各クラスに重複するメッセージがあり、他のクラスのメッセージと一致してしまい
結果として、抽出されたデーターが目的の答えになりませんでした。

どうすれば、可能になるでしょうか。

一致条件
?@サーバー名
?Aクラス  は一致させる

?Bsheet1のメッセージとsheet2のメッセージはワイルドカード含む部分の一致で抽出させる。

よろしくお願いします。
(のじ) 2016/11/24(木) 10:03


 =IFERROR(INDEX(Sheet2!D$2:D$100,MATCH(1,INDEX(((Sheet2!A$2:A$100=A2)*(COUNTIF(C2,Sheet2!C$2:C$100))),0),0)),"")
 は
 Sheet2!A$2:A$100=A2
 でサーバ名の一致、

 COUNTIF(C2,Sheet2!C$2:C$100)
 で、メッセージの一致(ワイルドカード対応)を調べている。

 そこにクラスの一致
 Sheet2!B$2:B$100=B2
 を追加することになる。

 =IFERROR(INDEX(Sheet2!D$2:D$100,MATCH(1,INDEX(((Sheet2!A$2:A$100=A2)*(Sheet2!B$2:B$100=B2)*(COUNTIF(C2,Sheet2!C$2:C$100))),0),0)),"")
 としてみてくれ。
(ねむねむ) 2016/11/24(木) 10:16

ねむねむさん、素早い回答ありがとうございます。
試してみます。

(のじ) 2016/11/24(木) 10:29


ねむねむさん、
試してみました。
バッチリな結果になりました。

非常に助かりました。

丁寧に教えていただきありがとうございました。
(のじ) 2016/11/24(木) 10:37


コメント返信:

[ 一覧(最新更新順) ]


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