- ベストアンサー
エクセル2003で価格表を作成!タテ方向に印刷枚数、横方向にデザイン番号を設定
- エクセル2003を使用して、タテ方向に印刷枚数、横方向にデザイン番号の価格表を作成したいです。
- 別シートに枚数とデザイン番号を入力すると、該当の価格が表示されるようにしたいです。
- 枚数やデザイン番号に応じて価格が変動し、制約条件内では同じ価格になるようにしたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 一例です。 質問の表は(列方向の場合) 0以上~10以下 11以上~20以下 21以上~30以下 ・・・ (列方向も同様の考え) となっている訳ですよね? 元データが昇順の場合は○○以上~△△未満という一つのかたまりで考えます。 その場合は↓の画像のように表に一工夫が必要になります。 上側の薄い緑色部分データが必要です。 このような加工をすると↓の画像のSheet2のC2セルに =IF(COUNTBLANK(A2:B2),"",INDEX(Sheet1!$C$3:$F$6,MATCH(B2,Sheet1!$A$3:$A$6,1),MATCH(A2,Sheet1!$C$1:$F$1,1))) という数式を入れオートフィルで下へコピーすると ご希望の表示になると思います。 別案として黄色い表の部分のように降順に表を作成しておくと ○○を超えて~△△以下の範囲で拾い出しが可能です。 黄色い表の配置だと Sheet2のC2セルに =IF(COUNTBLANK(A2:B2),"",INDEX(Sheet1!$C$10:$F$13,MATCH(B2,Sheet1!$B$10:$B$13,-1),MATCH(A2,Sheet1!$C$9:$F$9,-1))) という数式を入れオートフィルで下へコピー! 同様の結果になると思います。 ※ 今回は41枚以上・521番以上はない!という前提ですので、 それ以上の数値がある場合は行・列とも一つずつ増やして、 これ以上ない!というデータを入れておきます。 長々と書きましたが 「以上~未満」と「○を超えて~以下」 の違いはご理解いただいたでしょうかね? いずれにしても少し表に手を加える必要があると思います。m(_ _)m
その他の回答 (4)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
デザインIDに対する幅の考慮(ランク切上げ)が出来ていなかったので訂正、 考え方は枚数の場合と同じ。 現状の設定値に対して、同じ価格での下限のIDを意味する枚数(MIN)を(E列以降の)2行目に設定する。 例えば、最初のE1が100ならE2:1、F1の250に対してはF2:101、要は(次の設定値)=(直前の列の設定値)+1の関係にする。デザインIDの検索は2行目を使う。 A3:価格(お答え) =VLOOKUP($A$2,$D$2:$AA$99,MATCH(HLOOKUP($A$1,$E$2:$AA$2,1,TRUE),$E$2:$AA$2)+1,TRUE)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
お金のことなので必ず確認しますよね? 心配になると二度三度、そのやり方では確実に確認に手間取ります。 なので同じシートでやりましょう。 A1:注文デザインID A2:注文枚数 A3:価格(お答え) =VLOOKUP($A$2,$D$2:$AA$99,MATCH($A$1,$E$1:$AA$1)+1,TRUE) B1:デザインID(固定文字:見出し) B2:枚数(同上) C列:枚数(MAX:現状の設定値) D列:枚数(MIN)、現状の設定値に対して、同じ価格での下限の枚数を意味する。 例えば、C列が10なら1、20に対しては11、要はD列=(C列-9)の関係にする。 C列以降が価格テーブルとなる。実際に枚数の検索で使うのは、C列ではなくD列であることにご注意ください。(D列は非表示にしても構わない)
[No.1]の誤謬訂正、 「Sheet1!C2:」は「Sheet2!C2:」の間違いでした。