• 締切済み

見積書作成に使えるエクセル関数について

縦横それぞれ50mm刻みで単価の変わる商品の価格表があります。 これをもとにエクセルで見積書を作成したいのですが、どのような関数を用いたらよいでしょうか。 例えば、横260mmで縦620mmならC7の\14,200となるような見積書です。 見積書のセルに実寸を入力すると、単価が自動的に計算されるような関数の方法を教えてください。

みんなの回答

回答No.8

INDEX、MATCH 関数を組み合わせる、例題みたいなご質問ですね。ただ、ちょっとだけ工夫が必要ですね。250 mm 未満または 400 mm 未満の場合に MATCH が発生させるエラーを回避するため。 =if(i2*j2,index(sheet2!$B$2:$G$14,match(max(j2,400),sheet2!$A$2:$A$14,1)+(400<j2)*(j2<1000)*(mod(j2,50)>0),match(max(i2,250),sheet2!$B$1:$G$1,1)+(250<i2)*(i2<500)*(mod(i2,50)>0)),"") 上式では、「0 mm」の行や列を用意しない代わりに、「+(400<j2)*(j2<1000)*(mod(j2,50)>0)」という項によって、検索される行列の位置を補正しています。ですから 0 mm 用の行や列は、価格表の中に設けません。 補正項ではなく、No.1 さんのように CEILING を使っても構いません。 No.6 さんの表では 0 mm 用の行列を設けていますし、No.2 さんの場合は見出しの行列が 0 mm 用として働いているようです。上式や No.1 さんの数式では設けないので、ご注意。 250 mm 未満または 400 mm 未満の寸法を入力しても、MAX の働きでエラーとはなりません。0 mm 用の行列を設けたご回答でも、もちろんそのエラーは発生しません。 また、MAX のせいで、I2 と J2 のどちらかが未入力の場合に価格表から誤った値を拾ってしまうという問題は、「i2*j2」という部分で回避しています。 なお MATCH の第 3 引数に「1」ではなく「-1」(検索値以上の最小値を検索)を指定する方法だと、数列が降順に並んでいないときはエラーになってしまいます。そのため今回の表では、できません。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.7

ご回答します 添付図のように B16に横の値を、 C16に縦の値を入れるとD16に答えが返る物とします。 D16=OFFSET($A$1,INDEX(FREQUENCY($A$2:$A$14,$C$16-POWER(10,-15+TRUNC(LOG($C$16,10)))),1,0)+1,INDEX(FREQUENCY($B$1:$G$1,$B$16-POWER(10,-15+TRUNC(LOG($B$16,10)))),1,0)+1,1,1) 寸評 こういった場合検索系の関数を頭に思い浮かべることが多いと思うのですが、 その多くが「~未満の値」を呼び出してきます。 すると「横249縦399」以下の寸法でエラーになってしまいます。 良くはありませんね。 なので今回は区間関数を使いました、 FREQUENCY構文です。 しかも 本来のヘルプ記載とは違う、 裏技の使い方をしています。 此はいにしえの失われた技術、 まるでラピュタのような物です。 (汗) 書き方としては FREQUENCY(区間、検索値) です。 例として、例えば =FREQUENCY({250,300,350,400,450,500},260) と書くと {1,5}などと返されるのですが、 {250以下,250超過,300超過,350超過,400超過,450超過,500超過} の何処に当たるかを、最初の引数「1」が 1つ少ない値で教えてくれます。 この関数に#NAはありません。 ただこのままでは この関数でさえ「~未満の値」を探しますので 有効桁数ギリギリのあり得ないほど小さい値を計算で引いて 調整しています。 如何でしょうか? お役に立てていたならば幸いです。 なお、 クラウドにサンプルファイルを置いていきますので、 お役立てください。

参考URL:
http://sdrv.ms/19wxXwQ
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんばんは! すでに回答は出ていますが、参考程度で・・・ ↓の画像で説明します。 右側がSheet2でSheet2に表を作成し、Sheet1に表示するとします。 ↓の画像のように表に少し手を加えます。 画像では昇順に並んでいますので、○以上~次の行(または次の列)未満の区切りになります。 おそらくアップされている画像を拝見すると「~以下」というコトだと思います。 となるとぴったりの場合どちらに入れるか?によって大きく結果が変わりますので、 表の列・行の区切り寸法に0.1を加えて、小数点以下の表示を減らしています。 (Sheet1に入力される数値に小数点以下はない!という判断で・・・) 以上の準備ができた上でSheet1のC2セルに =IF(COUNTBLANK(A2:B2),"",INDEX(Sheet2!B$2:G$14,MATCH(B2,Sheet2!A$2:A$14,1),MATCH(A2,Sheet2!B$1:G$1,1))) という数式を入れオートフィルで下へコピーすると 画像のような感じになります。 ※ すでに表の区切り数値を入れていてひとつひとつ0.1ずつ加えていくのが手間であれば どこか使っていないセルに 0.1と入力 → 右クリック → コピー → 0.1を加えたいセルを範囲指定 → 右クリック → 「形式を選択して貼り付け」 → 「加算」を選択しOK これですべてに0.1が加えられますので、小数点以下を表示しないようにします。 尚、Sheet1の入力値がmm単位である場合は加算を0.01のように調整してみてください。m(_ _)m

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.5

No.2とNo.3です。 No.3の回答にNo.1ですと書いてしまいました。 すみませんNo.2の間違いでした。 No.1さん申し訳ありませんでした。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

>試したところ、#NAME?とセルに表示される 「試した」とは、回答の数式をコピーして、何も考えないでそのままエクセルに貼り付けてEnterしたという事ですね。 では改めて、次の通りに操作しましょう。 1.J1セルにあなたの横の寸法、260を記入する 2.J2セルにあなたの縦の寸法、620を記入する 3.J3セルに数式として  =IF(OR(J2="",J1=""),"",VLOOKUP(MAX(400,CEILING(J2,50)),$A$2:$G$14,MATCH(MAX(250,CEILING(J1,50)),$A$1:$G$1,0))) と記入する。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.3

No.1です 参考のサイトを忘れました。 関数の“合体ワザ”で距離と重量から料金を算出せよ http://pc.nikkeibp.co.jp/article/column/20120927/1064922/?P=1

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.2

一例です 画像参照 D17及びD18を作業列とし、列、行の位置を求めます D17に =MATCH(C17,B1:G1,1) D18に =MATCH(C18,A2:A14,1) C19に =INDEX(B2:G14,D18,D17)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>横260mmで縦620mmならC7の\14,200となる そのご説明が正しいなら、あなたの表は「横250から300までがB列」じゃなくて、「横250以下B列、250を超えて300までC列」という区分で書かれているということですね。 計算例: =IF(OR(縦のセル="",横のセル=""),"",VLOOKUP(MAX(400,CEILING(縦の寸法,50)),$A$2:$G$14,MATCH(MAX(250,CEILING(横の寸法,50)),$A$1:$G$1,0))) といった具合で。

tellme33
質問者

お礼

早速のご回答ありがとうございます。 試したところ、#NAME?とセルに表示されるのですが、なぜでしょうか?

関連するQ&A

  • エクセルで見積書を一発作成・・

    例として5種類の確定された価格表があります。 たとえばNo.5と入力規制されたセルで5を選択すると 見積書の価格が入るセルにNo.5での価格が自動的に選択されて 見積書が完成する為には価格が入るセルに入る関数はどのような関数を利用すればいいでしょうか? 5種類の価格表は別シートで表記されています。    

  • 単価×個数=価格の合計の関数ですが?

    エクセル関数で、単価×個数=価格         単価×個数=価格         単価×個数=価格           (合計)?円 上記の計算を関数で表記するのには、どうしたら出来るのでしょうか? 普通は、単価×個数=価格の式を入れて、そのまま下にドラッグして、縦の価格の合計は自動計算しています。関数に関しては、恥ずかしながら赤子なみです。分かりやすくご指導下さいますことをお願いいたします。

  • 見積書の作成について

    建設業です。現在見積もりを作成するとき、単価表から一つずつ単価を拾っており大変な時間がかかっております。小さな会社ですので、あまり大掛かりなソフトは必要なく、単価がてきて計算できるようなソフトをご存知でしたら教えていただきたいです。 自分でも調べてみたのですが、どれも性能&お値段が高すぎで弊社には不向きのようです。 それとも自分でエクセルなどで作成するのが一番よいのでしょうか? アドバイスよろしく御願いいたします。

  • エクセル方眼の印刷結果について

    縦横1.06mmのエクセル方眼で図形を作成し、印刷したところ、横の寸法は合いますが、縦が短くなります。具体的には、縦横100セル(106mm)の正方形を作図し、印刷したところ、横の寸法は106mm(問題なし)。縦の寸法は約89mmと短くなってしますます。プリンタプロパティの独立変倍で、縦のみ119%に設定し印刷すると、縦横106mmの正方形で印刷できました。 ① このようにエクセル方眼の寸法と印刷結果のズレはどうして生じるのでしょうか?(プリンタの特性に左右されるのでしょうか?) ②もしプリンタの特性に左右されるのであれば実寸に合わせる変倍設定は出力プリンタを変えるたびに必要となるのでしょうか? ③プリンタの変倍設定を行わず、エクセル方眼の設定どうりに印刷できる方法はないのでしょうか?

  • Excelで関数を使って単価を表示したい

    会社で収支表を作成していますが、特定のセルに品物を入力すると隣のセルにその単価を自動的に表示する関数が知りたいのです。恐らく、IF関数で出来るとは思うのですが、中々思うように表示できません。VLOOKUPも必要なのでしょうか?なるべくIF関数だけのシンプルな関数で作成したいと思ってるのでが…どなかたお分かりになる方ご指導お願いします。

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

    作りたい表は以下の通りです。 セルA1に「110」と入力してあります。 (110は110円で1ドルを円換算した数字です) セルB2には商品名 セルB3には商品名の価格(円) セルB4にはセルB3からA1を割ってドル換算した価格を自動でだしたいと思っています。 マクロは良くわかりません。 B4に入れる関数、もしくはマクロ以外でこうすれば簡単だよ。 などありますでしょうか? 関数初心者です。どうぞよろしくお願いいたします。

  • Excelで見積書を作成したいのですが・・・(T-T)

    Excelで見積書を作成しています。 C16~C35までを商品名にしてE16~E35までを数量、F16~F35までを 単位、G16~G35までを単価、H16~H35までを数量×単価の金額に にしています。 1社へ出す見積りであれば問題ないのですが、同じ商品、数量、単位 なのにグループ会社(約100社)へ同時に出す場合があるのですが、商品、数量まで同じなのですが、単価だけが掛け率が違うのです。 グループ会社のA社へは15%(原価÷0.85)で、B社へは20% (原価÷0.80)になったりします。 どこかのセルに掛け率を入力 すれば単価だけ入力した掛け率によって自動的に変わらないでしょうか? そうすれば宛先の社名を入れ替えるだけで簡単に出来ると 思っています。 100社全ての単価を電卓で掛け率を計算して入力するのは大変です。(^_^;)どなたか詳しい方助けて下さい。 OSはwindowsXPでExcelはOffice2003を使用しています。

  • エクセルの操作方法しりたい

    添付ファイル参照 1.表計算の合計の値を別の表に自動的に計算したい 2.計算ではないが一つのセルに入力した数値を別の表のセルに自動入力したい 3.縦と横の合計を自動入力したい。 4.デリートで数字を削除しても表計算は消せないようにしたい 5.シートの表計算を変更できないようにパスワードで保護したい

  • エクセルの関数計算において・・・

    商品の価格表をエクセルで作っています。 仕入値価格に関数計算を入れて、販売価格を出しています。 商品数が500以上あり、この関数計算は非常に便利だと思っていたのですが、少し困ったことがあります。 お客様が価格表をエクセルのデータでほしいといってきました。 この場合、仕入値価格を削除しないとまずいので削除すると、関数計算で出してある、販売価格がエラー表示なってしまいました。 仕入値から関数計算を使って、販売価格を出しているからこのような結果になったようです。 販売価格の列をコピーしてもダメでした。仕入値価格を削除するとやはりエラーになってしまいます。 そこで、仕入値価格の列を見えないように仕入値の列幅を0にして、パスワード保護をかけました。 これで分からなくなったのですが、販売価格のセルをクリックすると、関数計算式が見えてしまって、仕入れ値は分からなくても掛け率がバレバレになってしまいました。 関数計算をやめて一個一個手打ち入力しかないのでしょうか。 仕入値価格列を削除しても、関数計算で出している販売価格列が表示されるようにするにはどうしたらよろしいのでしょうか。 詳しい方がいらっしゃいましたらアドバイスよろしくお願いします。

  • 見積書を作成したいのですが・・・

    ワードで見積書のフォーマットを作成しました。ところが、エクセルでないため、合計金額や消費税の自動計算が出来ません。 それで、エクセルにコピペしたのですが、文章の部分が、そのままコピーされず、横書きが縦になったり、文字列が表に入り込み、めちゃくちゃに表示されてしまいます。 ワードのままでも、エクセルに変換しても使い勝手がよければ、どちらでも良いのですが、ご助言、方法を伝授してください。 お願いします。

専門家に質問してみよう