• ベストアンサー

この関数式の改良法について教えてください。

grumpy_the_dwarfの回答

回答No.3

まず、運賃表を二つに分けるのをヤメます。で、運賃表にO列を新設 して、200または400と書いておきます。この列に、繁忙期は1、閑散 期は-1、通常期は0をかけ算して足せばいいわけですね。 で、繁忙・閑散表が適切に作ってあれば、countifの結果は0か1にし かなりません。かけ算のためのパラメータは =COUNTIF(H22繁忙・閑散!$A$1:$H$24,I5)-COUNTIF(H22繁忙・閑散!$A$47:$H$67,I5) で求められます。 さらに、空白を返す条件(日付が入力されてない or 到着駅が運賃表 に載ってない)のチェックをまとめます。 =if(I5*countif(運賃表!$A$2:$O$286,L5), vlookup(L5,運賃表!$A$2:$O$286,5,0) +vlookup(L5,運賃表!$A$2:$N$286,15,0)*(countif(H22繁忙・閑散!$A$1:$H$24,I5)-countif(H22繁忙・閑散!$A$47:$H$67,I5)), "") こんな雰囲気になりますね。

qazxcvfr4
質問者

お礼

ありがとうございます。 しかし、 =if(I5*countif(運賃表!$A$2:$O$286,L5), vlookup(L5,運賃表!$A$2:$O$286,5,0) +vlookup(L5,運賃表!$A$2:$N$286,15,0)*(countif(H22繁忙・閑散!$A$1:$H$24,I5)-countif(H22繁忙・閑散!$A$47:$H$67,I5)), "") が理解できませんでした。 =COUNTIF(H22繁忙・閑散!$A$1:$H$24,I5)-COUNTIF(H22繁忙・閑散!$A$47:$H$67,I5) の部分も理解できません。 意味を教えていただけるとありがたいです。

関連する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,"")

  • 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)) という関数に直して、同じような表を作ろうとしたのですが、うまくいきません。 何が悪いのか分かりません。 どうすればうまくいきますでしょうか?

  • VLOOKUP関数について教えてください。

    航空運賃の料金計算という問題をしています。 (1)行先番号と時期番号を入力すると、自動的に運賃が計算できる計算表を完成しなさい。 (2)さらに事前割引表を元に、割引ができる表に改めなさいという問題になります。 (1)はMATCH関数とVLOOKUP関数で、なんとかできたのですが(2)がさっぱりわかりません。 (1)の時点ではこんな感じで数式を入れています。 H       I        J 出発地   東京(固定です。) 行先番号            =MATCH(I5,C6:F,0) 時期 料金              =VLOOKUP(I4,C6:F33,J,FALSE) (B2:E4の形で横に表にしたかったのですが、上手くMATCH関数を入れられず横に新たに作って考えています。) *行先・金額の表はこのような形で入力しています。 B    C    D      E    F 行先  番号  通常期   多客期  閑散期 札幌  1   24050    25250   21500 沖縄  27   34400    40660   37660  時期分類表  番号 1 通常期 7/1~7/31、8/21~11/30、2/1~3/31    2 多客期 8/1~8/20、12/27~1/6    3 閑散期 12/1~12/26、1/7~1/31  事前割引表 4週間前 運賃50%引き       3週間前 運賃30%引き       2週間前 運賃22%引き (2)の問題をとくには、まずI5にいつの時期かを判定?する数式を入れないとダメなのでは?、と思うのですがわかりません。 ちょうど7つだしIFのネストは7つまでできたから、と思ったのですが7/1~7/31どう入力すればいいのかわからず挫折。 次にこの日付を全部入力横の列に番号を入力、日付を検索値にして1~3をVLOOKUPで引っ張り出せばと思ったのですが上手くいきません。 (検索地が日付で数値でないからでしょうか?) 4週間前というのは1月前と考えて、3週間前は3×7日と考えて21日と考えるのかな?と思ったのですが、そこまでしか思いつきませんでした。 すみませんがこの問題の解き方、教えてください。 どうぞよろしくお願いします。

  • 急いでます。エクセルの関数教えて下さい

    =VLOOKUP(E4,B4:C7,2) という式があって、 #N/Aを表示させたくないときに=IF関数を使うのはわかるのですが、 このIFと VLOOKUPの式のつなげ方ってどうやるんでしょうか? よろしくお願い致します

  • LibreOfficeの関数について

    IF($H5="","",IF(L5="データA","",VLOOKUP($H5,$B$5:$F$10,2+(L5="データB"),0)&"")) IF($H5="","",IF(L5="データB","",VLOOKUP($H5,$B$5:$F$10,3-(L5="データA"),0)&"")) という式を重複と漢字に対応させるにはどうしたらよいでしょうか? 例えばデータA、Bというところを収入や支出としできれば重複データに対応させたいです。

  • (エクセル)2つの関数の式について。

    【=IF(A1=1,VLOOKUP(検索値,範囲1,列番号),IF(A1=2,VLOOKUP(検索値,範囲2,列番号),""))】 の式は2つの関数を混ぜてあるのですが、どのように指定すればいいいのでしょうか?fxをクリックしてIF関数を選び、論理式でA1=1をいれ、真の場合のところにVLOOKUP(検索値,範囲1,列番号)をいれてOKするとエラーになります。式の指定の仕方が分かりません。

  • Excel、関数に付いての質問です。

    Excel、関数に付いての質問です。 度々の質問で申し訳ありません。 添付のエクセル表で、F4に価格を出したいのですが、どのようにしたら良いでしょうか? (A4の商品名をB4に「1」があるとき、D4の購入場所区分「1」の価格表から価格を出したい) A商店のみで購入する場合は「=IF(B4=1,VLOOKUP(A4,$H$4:$I$8,2,0),"")」で出していたのですが…。 INDEXや、MATCH関数の使い方の本も読んでみたのですが、完敗してしまいました。 分かりにくかったら申し訳ありません。補足させていただきます。 宜しくお願いします。

  • エクセル関数

    =IF(COUNTIF($C$40:$C$55,$B3),"休館日",VLOOKUP(WEEKDAY(B3),{1,"";2,"";3,"";4,"休館日";5,"";6,"";7,""},2,0)) 上記の関数を入力するとエクセル2003では、#N/A とメッセージが出てしまうのですが、 また、質問しました 年間の指定した日と毎週水曜日の両方を休館日にするには、上記の関数を 入力したのでは、表示されません。 ご回答お待ちしております。

  • エクセル2010 関数

    こんにちは。詳しい方お教えください。 添付の画像の黄色部分の関数は =IF(VLOOKUP($A3,$A$15:$C$19,2)="収入の",VLOOKUP($A3,$A$15:$C$19,3)*H3,IF(VLOOKUP($A3,$A$15:$C$19,2)="月額固定",VLOOKUP($A3,$A$15:$C$19,3), IF(VLOOKUP($A3,$A$15:$C$19,2)="年額固定",VLOOKUP($A3,$A$15:$C$19,3)/12,""))) という事がわかったのですが この場合の $15:$C$19,2 や 19,3って何を指すものでしょうか? すみません、勉強不足なのは重々承知の初心者です。 この関数を基に、同じような書類を作りたいと考えたのですが そこがわからず進みません。 よろしくお願い申し上げます。

  • 【OpenOffice】vlookup関数を条件式として使う

    【OpenOffice】vlookup関数を条件式として使う タイトルどおりなんですが A2に書いた値がE2からE200の表内の値と一致するかどうかを条件にif文を以下のように =IF($A2=VLOOKUP($A2;$E$2:$E$200;1;0);OK;NG) 作ったんですがTRUEでない場合、NGが表示されず空白を示す#N/Aが表示されてしまうんです ちゃんとNGが表示されるようにするにはどうすればいいのでしょうか? どなたか教えていただけませんでしょうか、よろしくお願いします。