【最大10000ポイント】当たる!!質問投稿キャンペーン!

過去に下記の質問をさせて頂きました。

「概要」
・UNIXのコマンド調査で、コマンドを過去に打ったことがあるかどうかを検索して、
  ある→今後も打てる
  ない→今後も打てない
といった具合に結果を出力させる関数を作成する。
 
(シート1)→条件指定のシート
・過去に打った実績があるかどうかを(3つの条件から)検索して、結果を出力するシート
  
セルE9→任意のコマンドを(直接)入力→例.df
セルE10→どのサーバで打つか(リスト)から選択→例.STサーバ
セルE11→目的は何か(リスト)から選択→例.ディスク使用状態の確認 
以上が条件指定
以下が検索結果(シート2の情報から出力する)
セルE14→コマンド(df)を打った結果→例.プロンプトが戻る
セルE15→コマンド(df)の意味→例.ディスク使用状態の表示
セルE16→コマンド(df)を打ったことにより監視装置にエラーメッセージが出力するか→例.出力されない
セルE17→コマンド(df)が運用に影響があるか→例.なし
セルD18→コマンド(df)が実際に打てるか(例 ○)→ココが本来の主旨
  
・まとめるとシート1の表は下記のようになります。

      D列                          E列            
9行目  コマンドを入力して下さい       df(直接入力)
10行目  場所は?                 STサーバ      
11行目  目的は?                  ドライブの使用状況確認     


14行目  どうなる(出力)              プロンプトが戻る
15行目  何の情報                ディスク使用状態の表示
16行目  アラームが出力される         出力されない
17行目  運用に影響がある              なし
18行目  打てる、打てない             ○  

(シート2)
・「過去に打ったコマンド名=A列」・「打てる、打てない=C列」・「運用に影響がある=D列」・「場所=F列」・「目的=G列」・「何の情報=H列」・「アラームが出力される=I列」・「どうなる(出力)=J列」の情報が保存されている
  DBみたいなモノ

→下記の表のように管理しています。(他の列は必要ないので省略します。)
     A列    C列    D列   F列           G列                  H列                 I列            J列
7行目   df     ○    なし  STサーバ      ディスク使用状態の確認    ディスク使用状態の表示     出力されない    プロンプトが戻る
8行目   CP    ○    なし  DBサーバ         コピー              コピー                出力されない      プロンプトが戻る


88行目


・1コマンドにつき列ごとに整理されています。 
A列7~88行目→打ったコマンドの一覧→88種類(これからも増えます)
C列7~88行目→任意のコマンドが実際の環境で打てるか→約2種類(○or×)
D列7~88行目→任意のコマンドが運用に影響があるか→約2種類(ありorなし)の2種類
F列7~88行目→コマンドの打った場所のサーバ名→約20種類(こらからも増えます)
G列7~88行目→コマンドの打った目的→88種類(これからも増えます)
H列7~88行目→何の情報→88種類(これからも増えます)
I列7~88行目→コマンドを打った際のアラームの出力→2種類(ありorなし)
J列7~88行目→コマンドを打ったらどうなるか→5種類
・プロンプトが戻る
・プロンプトが戻りファイル生成される
・結果が標準出力された後、プロンプトが戻る
・結果が標準出力された後、プロンプトが戻る(標準出力がないケース)
・結果を標準出力したまま、Ctlr+Cで戻す


→その結果下記の回答を頂きまして、大分完成に近づいてきました。

   [Sheet1]
F9セルに検索条件を指定するセル関数を入力します
=$E$9 & "/" & $E$10 & "/" & $E$11

F10セルに検索結果の該当行を返すセル関数を入力します
=MATCH(F9,Sheet2!K7:K88,0)

E14~E18結果を表示します
=INDEX(Sheet2!$A$7:$J$11,$F$10,@@) ※@@は返したい列を指定してください

[Sheet2]
k列に検索キーを生成するセル関数を入力します
K7セルに検索キーを生成するセル関数を入力します
=A7 & "/" & D7 & "/" & E7
K8~K88までK7のセルをコピーします 

→3つの検索条件で一致した場合はリストから正しく表示しますが、
 一致しない場合は、結果が「#N/A」と出力します。
 条件がひとつでも一致しない場合は、「#N/A」でなく「空欄」で何も表示しない状態にしたいのですが
 可能でしょうか?


宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

「マシン毎に同じ名前で違う機能の命令を作って混乱させると面白


いかもプロジェクト」でもやってんのかいって感じの質問ですね。

条件に完全に一致する行が見つからなかったら、match関数が#N/Aエ
ラーを返します。F10ですね。
E14~E18でindex関数にエラー値を渡してしまったらそのままエラー
値が返ってくるので、=if(isna($F$10),"",index(~のようにif関数で
エラー判定をして分岐すればオッケー。

でも、該当データが無いということをしっかり表示する#N/Aエラー
は重要な情報ですよ。無闇に消すのはどうかな。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

上手くいきました。

感謝致します。

お礼日時:2008/02/23 06:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング