• ベストアンサー

この関数の意味を教えて下さい。

31歳の男です。 関数についてはド素人ですが、下記の関数について調べています。 お知恵を貸して頂けないでしょうか? (シート1) 下記のように条件をどんどんリストから選択して行き、結果を出すシート (シート2) 元データが入っているDBみたいなモノ        (条件) ・セルE6→申告元は?(例 NOC) ・セルE7→場所は?(例 NOC) ・セルE8→何によって検知した?(例 運用管理端末) ・セルE9→発生箇所は?(例 サーバ) ・セルE10→何が起きている?(例 警告メッセージ) ・セルE11→条件は【その1】?(故障部位又はリソース) (例 ネットワーク機器) ・セルE12→条件は【その2】?(障害状況と処理)(例 事象が復旧している)  (結果) ・セルE16→影響は? (例 運用への影響はなし) ・セルE17→即応措置の要否は? (例 継続調査)  (条件式) ・セルG6→=IF(E6="NOC","NOC_申告元",E6) ・セルG7→=IF(E7="NOC","NOC_場所",E7) ・セルG9→=IF(OR(E9="サーバ",E9="NW機器",E9="その他"),CONCATENATE(E9,"_発生箇所"),E9) ・セルG10→=IF(E10="その他","その他_故障内容",E10 ) ・セルG11→=IF(OR(E11="サーバ",E11="NW機器",E11="その他"),CONCATENATE(E11,"_故障部位"),E11) ・セルG12→=E12  (結果式) ・セルE16→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,2,0)) ・セルE17→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,3,0)) (質問) ・この条件式と結果式の意味(訳)を教えてもらえないでしょうか?  例  一行目→もしE6の値が"NOC"の場合は"NOC_申告元"を返す???   すいません、意味が分かっておりません。 ・条件次第では、結果が「False」や「#N/A」と出てしまいます。  この場合、エラー値を表示しないようにするにはどうしたら良いでしょうか?      以上、宜しくお願いします。    

質問者が選んだベストアンサー

  • ベストアンサー
  • pusai
  • ベストアンサー率38% (451/1162)
回答No.5

> ・セルE16→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,2,0)) > →~118,2,0の[2,0]ってどうゆう意味なんでしょうか? [2]は[B91~D118]の範囲の中の2列目、つまりC列の値を返す指示。[3]なら3列目のD列。 [0]は[False]の代わりで、検索の型が「完全に一致」を示し、検索値(G12)と完全に一致するセルを検索する指示。

tatuya24_2006
質問者

お礼

ありがとうございました。 理解することができました。 感謝致します。

その他の回答 (4)

  • pusai
  • ベストアンサー率38% (451/1162)
回答No.4

> ・セルE16→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,2,0)) もしG12の値が0の場合は""を返す。 そうでなければ、リストsheetのB91~D118の範囲の中の左の列(B列)からG12と一致する(最後の0=Falseで指定してます)セルを検索し、そのセルと同じ行の2列目(C列)の値を返す。 左の列(B列)にG12と一致するセルがなければ「#N/A」を返す。 > ・セルE17→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,3,0)) 式の意味は上と同様 > 関数についてはド素人 ド素人なら「~~を返す」などという日常会話で使わないような表現はしません。 この表現が自然に出てくる段階ですでにド素人は卒業しているかと思います。 他の方も書いていますが、そろそろ解説書やヘルプなどを参考に知らない関数を開拓してくことを始めても良いころではないでしょうか 解説書やヘルプなどを見てもチンプンカンプンなら、とりあえず適当なデータを作って試してみる。 エラーが出たら式をいじってまた試してみる。 何度も試行錯誤を繰り返していくうちに、だんだん法則性が見えてくるでしょう。 ちなみにIF関数、OR関数、CONCATENATE関数、VLOOKUP関数のうち、ここ10年の間に私が使う機会があった関数はIF関数のみ。 この回答も、ヘルプを見て適当にちょこっと試して書いていたりします。 法則性が見えてくれば、使ったことのない関数でもヘルプを見ればどうにかなるようになります。 がんばってください。

tatuya24_2006
質問者

補足

回答ありがとうございました。 リストを修正したところ期待通りの結果が出ました。 ところで自分は数字の意味がとても苦手です。 ・セルE16→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,2,0)) →~118,2,0の[2,0]ってどうゆう意味なんでしょうか? ・セルE17→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,3,0)) →~118,3,0の[3,0]ってどうゆう意味なんでしょうか? すみませんが、教えてください。

回答No.3

E16とE17は、単純に「list」シートのB91:D118に書かれた表を検索 して、G12に一致する行のC列とD列の値を持ってきているだけです。 G12は単にE12に入力した内容をコピーしているだけなので、これが マトモに動くなら、E6からE11までの入力でE12に入力可能なリスト を制御していることになります。セルの関数をどんなに眺めても、 このブックが何をしているのかは判んないですよ。山盛りあるはず の名前の定義と、入力規則を照合してみないとね。 で、E12をリストから選択しているのに#N/Aエラーが出るのなら、入 力規則のリストや結果表示のリストのメンテナンス不良。

tatuya24_2006
質問者

お礼

回答ありがとうございました。 何とかリストの方をメンテナンスした所 期待通りの結果がでました。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

ちょっと毛色の変わった質問で、1つ1つ考えていくのが面倒な質問の書き方になっている。 有名なVLOOKUP関数の応用問題ではないか? WEBでこのVLOOKUP関数を照会したら> ーー >元データが入っているDBみたいなモノ は小数実例でも挙げないとイメージが湧かない。 ーー 最終G12でVLOOLUPで表を検索している。 そこにいたるまでに、色々条件が欠けられている。 IF関数(場合分け) OR関数(どちらか一方が真の時) CONCATENATE関数(文字列の結合。&と同じ) VLOOKUP関数 しか使われていない。これらはエクセルを使い出したらすぐ必要な、常識的な関数です。 解説書を開くか、WEBで「エクセル OR関数」などで照会すること。実例などもかならず挙げて説明がある。 そんなこともしてないのでは。

tatuya24_2006
質問者

お礼

回答ありがとうございます。 とりあえず解説書は目を通したのですが イマイチ分かりませんでした。 (式のつながりが...。) 甘えた質問かもしれませんが、自分には難しくて分かりませんでしたので質問させて頂きました。

  • pusai
  • ベストアンサー率38% (451/1162)
回答No.1

> ・セルG6→=IF(E6="NOC","NOC_申告元",E6) もしE6の値が"NOC"の場合は"NOC_申告元"を返し、そうでなければE6を返す > ・セルG7→=IF(E7="NOC","NOC_場所",E7) > ・セルG10→=IF(E10="その他","その他_故障内容",E10 ) 式の意味は上と同様 > ・セルG9→=IF(OR(E9="サーバ",E9="NW機器",E9="その他"),CONCATENATE(E9,"_発生箇所"),E9) もしE9の値が"サーバ"、"NW機器"、"その他"でいづれかの場合、"【E9の値】_発生箇所"を返し、そうでなければE9を返す (例:E9の値が"サーバ"なら"サーバ_発生箇所"を返す) > ・セルG11→=IF(OR(E11="サーバ",E11="NW機器",E11="その他"),CONCATENATE(E11,"_故障部位"),E11) 式の意味は上と同様 > ・セルG12→=E12 G12にE12を返す

tatuya24_2006
質問者

補足

回答ありがとうございます。 非常に分かりやすいです。 こちらも解説、お願いできないでしょうか? ・セルE16→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,2,0)) ・セルE17→=IF(G12=0,"",VLOOKUP(G12,リスト!$B$91:$D$118,3,0)) 宜しくお願いします。

関連するQ&A

  • エクセルでの関数について

    お世話になります。 仕事で各商品の単価を比較するためのリスト作成を頼まれたのですが、条件が複雑なため、 関数で悩んでいます。画像を参考に、順を追って説明させて下さい。 1.まずリストに、各商品の単価を入力 2.入力された単価は作業列(1)~(3)に反映されます。このセルに入っている計算式は、   セルG6 =IF(C6="","",C6)   セルH6 =IF(D6="","",D6)   セルI6  =IF(E6="","",E6)   が入っています。 3.ここからが分からないところなのですが、採用単価に入る式で迷っています。条件は、  (1)A資料があれば、A資料が優先的に採用単価になる  (2)B資料とC資料の2つがあれば、平均の値(1円未満切捨て)が採用単価になる  (3)空白の欄には何も入れない  とのことです。 試しに(セルJ6の場合) =ROUNDDOWN(IF(G6="",AVERAGE(H6:I6),G6),0)  を入れてみましたら、(1)と(2)の条件はクリアしたように見えますが、空欄のある所はエラーの #DIV/0!が出てしまいました。 式自体が違うのか、それとも式に何か追加するのか分かりません。 分かりにくい説明かと思いますが、どうぞお知恵をお貸し下さい。宜しくお願いします。       

  • Excelで二つの関数をヒトツの関数に収めたい

    =IF(AND(T$3>=$D9,T$3<$E9),1,"")という式と =IF(AND(T$3>=$F9,T$3<$G9),-1,"")という式をヒトツにまとめたいです。 ちなみにD9は出勤時間、E9は退勤時間、F9は休憩始めの時間、G9は休憩終わりの時間 そしてT3には時刻が入力されており、塗りつぶす事によってグラフになるようになっています。 現在は1つ目の式のみを使い、条件式書式にて「1と等しい時にセルを塗りつぶす」としています。 これに休憩時間の間はグラフを塗りつぶさないという条件をプラスしたいと思っています。 補足としては、他のセルにてCOUNT関数を使っており、その時間に何人が働いているか表示出来るようにしています。 二つ目の式の真の場合の-1に深い意味はありません。 結果、何人働いているか表示出来ればと思っての数字です。 よろしくお願いします。

  • CONCATENATE関数を使うメリットは?

    式 =A2&A3&A4&A5 と式 =CONCATENATE(A2,A3,A4,A5) とは同じ結果になりますよね? 前者より後者の関数を使った方が良いのはどんな場合かを知りたいのです。長年に亘って Excel を使い続けているけど、文字列結合をするときに私は CONCATENATE を使ったことがありません。 添付図をご覧ください。 セル B2 に簡単な式 =B1&A2 を入力して、このセルのフィルハンドルをマウスで「エイヤッ!」とダブクリするだけで、セル B5 には式 =CONCATENATE(A2,A3,A4,A5) と同じ効果が表示されます。このように、“CONCATENATE結合”より“&結合”の方が絶対便利と思っているので、私の知らない CONCATENATEの特長を知りたくてお尋ねしています。

  • IF関数の結果が反映されなくなりました・・

    エクセルの質問です。昨日まで結果が反映されていたのですが、なぜかIF関数式に結果が反映されなくなりました。 G24セルには数値(別シートから参照)が入っていて 別セルにG24の数値を下記のような条件式で判定します。 =IF(AND($G$24>=判定!J6,$G$24<判定!J7),"○","") G24に数値が入ると必ずどれかが○になります。 どの式も○が入らなくなりました。 ちなみに上記の式にG24に参照されている数値を下記のように入力すると○は反映されます。 =IF(AND(0.33>=判定!J6,0.33<判定!J7),"○","") 原因がわからず困っています。 よろしくお願い致します。

  • IF関数

    勤務分担担当表を作成しています。以前から論理式の対象のセルに計算式が入っているとき関数が反映しない時があります。未熟が原因だと思うのですが回答お願いいたします。今回の例を記載します。対象セル(=E18).E18の計算式=IF(AD9=2,"休",IF(AD9=1,"3",IF(AD9="休","2",IF(AD9=3,"1")))).反映させたいセルの計算式=IF(I$18=1,IF(E19=3,4,3),IF(I$18=2,IF(E19=1,$X$4,IF(E19=2,$AD$3,IF(E19=3,$AD$4,IF(E19=4,$X$3,"")))),""))です。仕事の分担に1~4・休、まであります、それを返し、勤務表を作成しています。他の事例では対応できるのですが今回はできません。ご指導お願いいたします。対象セルが実数だと反映してくれます。

  • IF関数

    勤務分担担当表を作成しています。以前から論理式の対象のセルに計算式が入っているとき関数が反映しない時があります。未熟が原因だと思うのですが回答お願いいたします。例を記載します。対象セル(=E18).E18の計算式=IF(AD9=2,"休",IF(AD9=1,"3",IF(AD9="休","2",IF(AD9=3,"1")))).反映させたいセルの計算式=IF(I$18=1,IF(E19=3,4,3),IF(I$18=2,IF(E19=1,$X$4,IF(E19=2,$AD$3,IF(E19=3,$AD$4,IF(E19=4,$X$3,"")))),""))です。仕事の分担に1~4まであります、それを返し、勤務表を作成しています。他の事例では対応できるのですが今回はできません。ご指導お願いいたします。

  • if関数を使って割引率をだす

    売上金額の50,000円以下を0%,50,000以上100,000円以下を5%,100,000以上を10%を値引き率とします。 例えばG6のセルにF5の売上金額を参照して上記の条件の元に式を作りたいんです。IF関数を使うのだと思うのですが、どうしてもうまくいかないのでお助けください。

  • Excel VBA 特定の条件の時に指定されたセルのクリア

    お世話になります。 Office2007 WinXPです。 VBAの勉強を始めたばかりです。 よろしくお願い致します。 E12~I12までに数字が入ります。 その数字を元にE13~I13までとE14に○か×か判定を入れてます。 VBAで動かしたいセルはF20~I20です。 E14が×の○の場合、F20~I20は全てセルのクリア Range("F20:I20").Clear 後は個別にF14が○ならF20のセルをクリア G13が○ならG20のセルをクリア H13が○ならH20のセルをクリア I13が○ならI20のセルをクリア J13が○ならJ20のセルをクリア 関数のIF文ではセルのクリアができないので… 条件は =IF(OR(E14="○",F13="○"),"データクリア","入力して下さい") 参考で見つけたHPで If 条件式 Then 判断結果がTrueのときに実行する処理 Else 判断結果がFalseのときに実行する処理 End If どのように当てはめたらよいのかがわかりません。 ご教授の程よろしくお願い致します。

  • お助け下さい…IF関数_エクセル

    (1)Lの時S (2)Sの時L (3)空白の時空白 上記のようなセルを作ろうとしてます。 下記式だと(1)の条件のみ返してくれません。 何かが間違えてるのだけはわかるのですが特定できず困っております。 =IF(E20="L","S",IF(E20="","",IF(E20="S","L",""))) 皆さま何卒お力をお貸しください。 よろしくお願いします。

  • 関数について教えて下さい。(再質問)

    過去に下記の質問をさせて頂きました。 「概要」 ・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」でなく「空欄」で何も表示しない状態にしたいのですが  可能でしょうか? 宜しくお願いします。

専門家に質問してみよう