• ベストアンサー

EXCEL の数式の意味

bunjiiの回答

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

Excel 2003以前のバージョンでしょうか? IF関数が3重の入れ子になっています。 一番外側のIF関数は解読できているようですので2番目と3番目について説明します。 2番目のIF関数はH178セルの値が"CL"のときは3番目のIF関数に処理を委ねています。"CL"以外のときは""(文字数0の文字列)を返します。 3番目のIF関数ではVLOOKUP関数で目的の値が見付からないとき1(数値の1)を返し、見付かったときはシート名がマスタのI列からE178の値と一致する行を探し、その行のS列の値を返すようになっています。 Excel 2007以降のバージョンでは3番目のIF関数をIFERROR関数に置き換えると数式が簡素化されて分かり易くなります。 =IF(LEFT(L178,2)="他社","",IF(H178="CL",IFERROR(VLOOKUP(E178,マスタ!I:S,11,0),1),"")) 尚、Excelの関数は数式を設定したセルへ数式の計算結果を代入するものなので任意のセルへ出力するものではありません。 つまり、セルの値=数式 と言う考え方です。

関連するQ&A

  • エクセルの関数の直し方

    現在、画像のような表を作成しておりますが、 1行目の前の行に5行挿入したいと考えております。 下の表からデータを製番・区分ごとに合計して上の表に表示されるようになっています。 5行挿入してタイトル等入れたいと思い、挿入してみると、 今まで下の表からの合計が上の表に表示されなくなってしまいます。 セル番号等確認はしてみたのですが、 どこがいけなくてうまく表示されないのかがわからなくて困っています。 どのように直したらいいかをご教示お願いいたします。 現在入っている関数は以下の通りです。 A2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(A1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(A1)),Sheet1!$L$14:$L$38,0),MATCH(A$1,Sheet1!$B$13:$I$13,0))) B2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(B1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(B1)),Sheet1!$L$14:$L$38,0),MATCH(B$1,Sheet1!$B$13:$I$13,0))) C2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(C1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(C1)),Sheet1!$L$14:$L$38,0),MATCH(C$1,Sheet1!$B$13:$I$13,0))) D2=IF(A2="","",SUMIFS(Sheet1!$G$14:$G$38,Sheet1!$B$14:$B$38,A2,Sheet1!$H$14:$H$38,B2)) E2=IF(C2="","",IF(ISERROR(VLOOKUP(C2,list!$S$3:$T$6,2,0)),"",VLOOKUP(C2,list!$S$3:$T$6,2,0))) H14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),3,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),3,FALSE))) I14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),4,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),4,FALSE))) J14=IF(ISBLANK(B14),"",IF(B14<="J121100144","旧","新")) K14=IF(AND(B14<>"",H14<>"-"),B14&"_"&H14,"") L14=IF(AND(K14<>"",COUNTIF(K$14:K14,K14)=1),COUNTIF($K$14:$K$38,"<"&K14)+1,"")

  • エクセルの数式

    恐れ入りますが、次の数式を、「もし、何がどうなら、こうする。」のような日本語で説明して頂けませんでしょうか? (1) =IF(ROUND(SUM(I:I),0)>=J8,ROUNDUP(G8,0),INT(G8)) (2) =IF(K8<1000,IF(E8="なし",K8,0),0) (3) =IF(L8=0,F8,0)

  • VLOOKUP関数 エクセル関数教えてください

    =IF(ISERROR(VLOOKUP(B2,$E$1:$F$296,2,FALSE)),"",VLOOKUP(B2,$E$1:$F$296,2,FALSE)) という関数を入れて、品番をセルに入力して元表から品名を導く表を作成しました。うまく使えています。 これを元に =IF(ISERROR(VLOOKUP(B2,$F$1:$I$1000,2,FALSE)),"",VLOOKUP(B2,$F$1:$I$1000,2,FALSE)) という関数に直して、同じような表を作ろうとしたのですが、うまくいきません。 何が悪いのか分かりません。 どうすればうまくいきますでしょうか?

  • エクセル書式について・・。

    エクセル関数に少し理解している者です。 =IF(ISERROR(VLOOKUP($S7,$AM5:$BH42,3,FALSE)),&quot;0&quot;,(VLOOKUP($S7,$AM5:$BH42,3,FALSE))) の関数式の意味が分かりません。 (1)この数式の意味を教えてください。 (2)この数式を作るためにどのような方法で行うのか できれば詳しく教えてください。 (1)、(2)共にできれば初心者でも分かるようなご返事いただけると 助かります。よろしくお願いいたします。

  • EXCEL上で、文字列と数式を判別する方法

    期初で色々とワークシートを作っているのですが、ちょっと困っています。 現在製品の売上見込を作っているので、  単価 × 数量 というシートを作っています。ここで「単価」は別ファイルをマスターにしてvlookupで引っ張ってきているのですが、ごくたまにこのマスターに入力がまだされていないことがあります。 そういう場合は数字を直打ちにしており、その際は自分でセルに色をつけて翌月は改めてvlookupでマスターと同期させているのですが、ごくたまに忘れてしまったり、そもそも後で見たら意味の分からない色に囲まれて困っております。 よって、できれば  「文字列」 (例:「1200」と直打)  「数式」  (例:+vlookup()と数式) を区別できる『数式』を教えていただければと思います。マクロならできそうな気もするのですが、今後のメンテを考えて数式でできればと思っております。 search find istext isnumber indirect if と色々試行錯誤したのですが、分かりませんでした。 ちなみに「検索機能」を使って「+」「=」を検索すればできるのはわかるのですが、数千行あるのでできれば数式で一括管理できればと思っております。 皆様、お知恵を拝借できればと思います。 よろしくお願いいたします。

  • エクセルのVBA1について

    お世話になります。 エクセルの文で下記の式があります。 =IF(ISERROR(VLOOKUP($E3822,☆集計!$C:$D,2,FALSE)),"対象外",IF($D3822>=VLOOKUP($E3822,☆集計!$C:$D,2,FALSE),"対象","対象外")) これは、正常に通ります。 これをVBAのFomura関数にしてみした。 Mdata = 3824 Range("L" & Mdata).Formula = "=IF(ISERROR(VLOOKUP($E" & Mdata & ",☆集計!$C:$D,2,FALSE))," & "対象外" & ",IF($D" & Mdata & ">=VLOOKUP($E" & Mdata & ",☆集計!$C:$D,2,FALSE)," & "対象外" & "," & "対象" & "))" 'Range("L" & Mdata).Formula = "=IF(ISERROR(VLOOKUP($E" & Mdata & ",☆集計!$C:$D,2,FALSE))," & Gai & ",IF($D" & Mdata & ">=VLOOKUP($E" & Mdata & ",☆集計!$C:$D,2,FALSE)," & Gai & "," & "Tai" & "))" コンパイルエラーとなりませんのが、実行しますと下記の様になります。 #NAME?となり、 式が =IF(ISERROR(VLOOKUP($E3824,☆集計!$C:$D,2,FALSE)),対象外,IF($D3824>=VLOOKUP($E3824,☆集計!$C:$D,2,FALSE),対象外,対象)) となり、対象、対象外が" "で括られません。 そこで、様々なサイトを参考にして下記の様にダブルクォートを重複して書きました。 ""対象""、""対象外""とすると赤字でエラーとなってしまいます。 Formula関数は、初めて使いますが、他の、単純な関数では成功しています。 どのようにすれば、通常の関数と同じ働きでインプットできるのか、ご教授して頂ければ有りがたく存じます。 よろしくお願いします。

  • excelの、ある数式内の{}の意味合いが知りたい

    あるexcelの文字列関数の練習問題として、住所内の都道府県名のみを抽出して表示させる問題がありました。 式はいろいろあると思いますが、いくつかある答えの中のどんな住所でも都道府県名を抽出できる数式として、こんな数式がありました。 次の通りです。 答え 「=IF(OR(MID(A1,3,1)={"都","道","府","県"}),LEFT(A1,3),LEFT(A1,4))」 ↓ 結果 セルA1「(北海道札幌市X-X-X)」であれば「北海道」を表示 ここで気になったのがOR関数内の{}(中括弧)の意味合いです。 OR関数のヘルプには書いてませんでしたし、()で代用もできない、配列定数・数式のようにも見えません。 自分でも色々調べてみたのですが、結局よくわかりませんでした。 一番キレイに見えた数式でしたので使いこなせればと思うのですが、{}の意味合いだけいまいちわからず。特に()で代用できない理由がよく分からずすっきりしませんでしたので、教えていただければ助かります。 ついでといってはなんですが、もっとキレイ?な式がありましたら、教えていただけると参考になります。 よろしくお願いいたします。

  • エクセルVLOOKUP関数でヒットしない数字

    A列    B列         D列     E列 CODE1    VLOOKUP    CODE2    NAME 01-A000  ああああ    01    ああああ 10-A123  #N/A      05    いいいい 20-B223  #N/A     10    うううう 30-C444  #N/A     15    ええええ AB-S455  きききき     18    おおおお A4-5554  くくくく     20    かかかか                 AB    きききき                 A4    くくくく                 以下略    以下略 のようなデータがあります。 A列のコード1の先頭2文字でD列をVLOOKUP検索します。 A列、B列ともに書式は文字列としています。 =VLOOKUP(LEFT(A2,2),$D$2:$E$29,2,0) という式をいれフィルドラッグすると先頭2文字が数字になるデータだけが01以外ヒットしません。 =VLOOKUP(IF(ISERROR(LEFT(A2,2)*1),LEFT(A2,2),LEFT(A2,2)*1),$D$2:$E$29,2,0) とすると、ある程度解消するのですが、1をかけると1になってしまう01がヒットしなくなるのは当然として、それ以外の数字でもD列にあるのにヒットしない場合があります。 D列のデータに先頭にシングルクォーテーションを入れればすべて解決するのですがそれ以外に解決する方法はないでしょうか?

  • EXCELの数式の問題が全く分かりません

    今EXCELの模擬試験をやっているのですが、いつも必ず数式の問題で間違い、次に回答を見てもさっぱり分かりません。 問題 セル【G6】の数式を、「上記目標」が空白の場合は、「達成率」に空白を表示するように変更してください。 答え (1)セル【G6】を選択します (2)「=IF(E6",",F6/E6)」に編集します。 とあるのですが、「=IF(E6",",F6/E6)」と入力すると FALSEと出てきてしまいます。 こういった数式の問題の回答について解りやすく説明されたWEBページってないでしょうか? 今使ってるEXCELのテキストはFOM出版のよくわかるマスター2003とEXCEL2000というテキストですが、これらをよく見ても私には数式の問題が良く分かりません。

  • エクセルの数式で質問があります

    以下のような面談表を作りました。 B10に『1』とうつとB2に『太郎』と出るようにVLOOKUPで数式を作りました。 次にこれを発展させてI14に『1』といれると H10とI10にそれぞれ『6日(火』と『13:30~13:45』と表示されるようにするには H10とI10にどういった関数を入れたらいいでしょうか。 自分なりに調べてはみたのですが、ある範囲の中から条件に合致するセルを 選び、指定された範囲の左端や上のセルを返すといったことをどうやってやるのかわからずで。 できれば式の解説まであると非常にありがたいです。 とても困っています・・・