• ベストアンサー

エクセルで父の仕事を手伝いたい

自営業の両親を少し楽にしたいと思い、 仕事の合間に事務作業をホンの少しだけ手伝おうと思います。 まずは、次の作業をエクセルで自動化したいのです。 1、父の店に問屋から定期的に品物が送られてきて、その品物ごとに取り扱いが決まっています。 たとえば商品Aは○○さんに配達、Bは棚にとって置くなどです(もう少し複雑ですが)。 2、問屋からは、ネット経由で納品書(CSV)をダウンロードすることができ、どの商品が何日に届くかわかります。 3、商品には固有の商品コードが付いていて、 12345-67890 というように5桁の数字ー(ハイフン) 5桁の数字という組み合わせで出ています。 そのうち必要な数字は 一番左側の数字が2の場合、左端の4桁 一番左端の数字が2以外の場合、左端の5桁で、その他の数字は無視します。 4、そこであらかじめ 商品コードの一番左側が2345x-xxxxの商品はAさんに配達    同  56789-xxxxの商品はとり置き というように商品コードと品物の取り扱いの対応表を作っておいて、 5、納品書と取り扱い対応表を照らし合わせて 納品書に「商品の取り扱い」という項目を自動で付け加えるようにしたいのです。 以上、長々と申し訳ありません。なお、エクセルについてのスキルは、かんたんな集計表を作ったりする程度です。マクロもかんたんなものは使ったことがあります

  • papua
  • お礼率96% (26/27)

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

  • ベストアンサー
回答No.3

親孝行の本屋の兄ちゃんのために一肌脱ぐか!(笑) CSVファイルはダブルクリックしたらエクセル形式に表示されることは分っていると思います。 この納品書の横展開がどこまであるか不明ですので、J列まであると仮定します。 商品コードがA列にあると仮定します。 新しいエクセルを立ち上げます。 一行目はタイトル行として、使いましょう。 A1に 商品コード B1に 商品名 C1に 納品日 D1に ほにゃら ・ J1に にゃんにゃん K1に Key L1に 商品の取り扱い X1に 対応Key Y1に 取り扱い方法 といった具合に必要なところまでタイトルを入れておきます。 バックカラーを付けて枠を付けると、それらしくなります。 取り扱い対応表を作っておきます。 X2 に 2345  Y2 に Aさんに配達 X3 に 2444  Y3 に Bさんに配達 X4 に 34567  Y4 に 棚Aに取り置き X5 に 45678  Y5 に 棚Bに取り置き ・ ・ ・ X10 に 99999  Y10 に 問屋に返品 と作っておきます。 ここでは9種類を例にしますが、本当は必要数の行数になります。 K2に 「=if(left(A2,1)="2",left(A2,4),left(A2,5))」 L2に 「=VLOOKUP(K2,$X$2:$Y$10,2,FALSE) K2とL2を選択して、問屋から来る納品書の最大件数以上の行まで下へコピーします。 L行に「#N/A」が表示されますが、それで正常です。 表示させない方法もありますが、ここでは省略します。 このエクセルを保存して置きます。(名前は「取り扱い表」とでも自由に付けて下さい。 この「取り扱い表」をテンプレートとして、これからいつも使うことになります。 ここから、納品書をダウンロードするたびに行なう定期処理 1.取り扱い表を開きます。 2.問屋から来るCSVの納品書をダブルクリックで開きます。 3.納品書のA1をクリックして、 4.Ctrl+End でデータの最後まで選択する。 5.Ctrl+C でコピーする。 6.取り扱い表のA2をクリックして 7.Ctrl+V で貼り付けします。 これでL列に取り扱いの指示が表示されます。 必要のない列や行は非表示にして印刷するなり、名前を別にして保存するなり、 あとは、よしなに! 取り扱い表は保存しないで置くと、毎回前回のデータを消さなくて済みます。 横の位置は納品書の項目数によって読み方をズラして貰って良いです。

papua
質問者

お礼

ご回答からお礼まで大変遅くなってしまいました。 この質問は、母が入院したのを機に、父の仕事を少し楽にさせようと思ってのことでしたが、 その後母の様態が急変、帰らぬ人となってしまいました。 今は母の四十九日も終わり、母の仕事の引継ぎもなんとか済みましたので、いろいろと試行錯誤しながら質問の式を完成させていきたいと思います。 方法としてはtinu2000さんのご回答を基礎に、他の皆さんの方法と自分なりの工夫も加えたやり方になると思います。(頭のなかでは、一応の方針は出来ているつもりです。) それまでは、なんとか手作業で仕事をしていくつもりです。 どうもありがとうございました。

papua
質問者

補足

>ここから、納品書をダウンロードするたびに行なう定期処理 ありがとうございます!!! じつは、この質問をする前に、沢山の解説書を読んだんですが、ひとつの表として完結して様々な計算や処理を行う例はたくさん書いてあるのに、ご説明のような定期処理をする方法が見つからなかったのです。 ANo.2さんへの補足に書いたのですが、今回の私の質問を整理すると、3つのパートに分けられると思うのですが、 tinu2000さんのご回答で、全てのパートの答えが出揃いました。 >親孝行の本屋の兄ちゃんのために そうです。既にお気づきかもしれませんが、実は「商品コード」というのは、雑誌の後ろ一番下あたりに書いてある「雑誌コード」のことなのです。 仕事の合間に作って、完成したら改めてお礼をさせていただきます。 本当にありがとうございました。

その他の回答 (2)

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

私見ですが エクセルを仕事に使えるように・使うには (1)エクセルとしての細かい質問にブレークダウンする技量 表現仕方も含む 本質問はやりたいことだけが、多数の質問店点が羅列状態です。 質問を1行程度で箇条書きし、別々の質問でOKWAVEに出すことを勧めます 本質問では、「(商品)コードから文字列(「取り扱い」を示す漢字)を 割り出すにはどうするか?」で済みます。 (2)少し先の目標でしょうが、VBAを勉強すべきです。 仕事で省力化してスムーズにこなすには、関数だけでは、不十分です。 ーーー 本件整理すると シートは (1)納品表シート (2)対応表シート の2つが問題になってます (1)納品表しーとは A列 商品コード   B列 修正商品コード(これが合ったほうが良いように思う) 多分=IF(LEFT(A1,1)="2",LEFT(A1,4),LEFT(A1,5)のようなもの。 C列 商品取り扱い  VLOOKUP関数で表を引く。 (2)対応表シート VLOOKUP関数を使うための対応表です 修正商品コード 取り扱い内容(漢字が良かろう) #1で出ているコード順にするのは必要ないとおもう(FALSE型の場合)。 ーーーー 対応表の具体例を挙げてみてください。 VLOOKUP関数は =VLOOKUP(A1,Sheet2!$A$1:$B$3,2,FALSE) のSheet1は対応表シート名で置き換えてください。 ーーー 不要な表現が有ります 1.の終わりまでは不要です。VLOOKUP関数の対応表を実例で示せば 判ることですから。

papua
質問者

お礼

ご回答からお礼まで大変遅くなってしまいました。 この質問は、母が入院したのを機に、父の仕事を少し楽にさせようと思ってのことでしたが、 その後母の様態が急変、帰らぬ人となってしまいました。 今は母の四十九日も終わり、母の仕事の引継ぎもなんとか済みましたので、いろいろと試行錯誤しながら質問の式を完成させていきたいと思います(それまでは、なんとか手作業でやっていくつもりです) どうもありがとうございました。 追伸:質問内容へのご回答に加えて、excelで関数を作る時の考え方の整理法など大変勉強になりました。

papua
質問者

補足

ご回答及びご指摘ありがとうございます。 実際に表を作って検証できるようになるまで時間がかかりそうですので、とりあえずこの補足欄を使ってお礼をさせてもらい、この仕事が完成してから、あらためてお礼を投稿したいと思います。 1、 >(1)エクセルとしての細かい質問にブレークダウンする技量 >表現仕方も含む >不要な表現 まったく仰るとおりです。 質問を整理できないまま、背景説明だけして回答者にまる投げするようなやり方にしてしまい、申し訳ありませんでした。 アドバイスを元に質問を整理してみると、 A. 2種類の商品コードを同時に利用できる形にする方法 →ご回答の(1)ですね 商品コード~対応表の間に修正商品コードを挟むというのは、目からウロコの発想でした(わかっている人には当然のことなんでしょうが・・・) 2種類の商品コードをひとつの関数で処理しようとして、わけがわからなくなっていましたので。 B. 修正商品コードに対応する取り扱いを呼び出す関数(→(2)) C. 日常業務として日々送られてくる納品書を自動的に変換、加工する方法 →ANo.3さんがお答えくださいました。 となるでしょうか。 こう整理してみると、なるほど、問題を解く上での糸口のようなものが見えてきた気がします。 本当に勉強になりました。ありがとうございました。

  • nikenike1
  • ベストアンサー率44% (76/169)
回答No.1

ご質問の内容より 4.の対応表(マスタ)の作成と 5.の式の作成が重要かと思われます 4.マスタについて 例 シート2に以下のようなマスタを作成します(例ではA1からB4の範囲へ入力したものと仮定します) コード  扱い 1    取置 2    配達 3    取置 ※コードが昇順で並んでいる必要があります(←特に重要)。品目が増えたらソートしなおします。 5.数式について 納品書のCSVをエクセルデータに取り込んで、新たに”扱い”の列を設け、そこに式を入力します ※イメージ(コードはA列に入っているものとします) コード 扱い 2   (式) 3   (式) 1   (式) 式にはデータを参照するvlookupを使用します。 書式は vlookup(検索元、マスタの範囲(絶対指定)、表示するマスタの列、false) となるので、例では VLOOKUP(A2,シート2!$A$2:$B$4,2,FALSE) を各行にコピー貼り付けすれば目的の動作がすると考えられます。 あとは上記例の参照部分などを御使用のシートにあわせて編集してください。

papua
質問者

お礼

ご回答からお礼まで大変遅くなってしまいました。 この質問は、母が入院したのを機に、父の仕事を少し楽にさせようと思ってのことでしたが、 その後母の様態が急変、帰らぬ人となってしまいました。 今は母の葬儀も終わり、母のやっていた仕事の引継ぎもなんとか済みましたので、いろいろと試行錯誤しながら質問の式を完成させていきたいと思います(それまでは、なんとか手作業でやっていくつもりです) どうもありがとうございました。 追伸:教えていただいたvlookup関数ですが、調べてみるといろいろと応用が出来そうです。 どうもありがとうございました。

papua
質問者

補足

早速のご回答をしかも深夜にわざわざいただき、ありがとうございました。 まだ全体像がつかみきれていないのですが、なんとか試行錯誤すればできそうです。 (仕事の合間に造りますので、検証には時間がかかりそうですが) ひとつわからない点は、質問の3にある通り、 コードの左4桁または5桁だけを使い、後の桁(とハイフン)を無視したい (マスタのほうでは左4桁または5桁だけを記述) のですが、この方法ではどうなりますでしょうか。 お手数をおかけして申し訳ありません。

関連するQ&A

  • エクセルの自動リンクで質問です。

    エクセル2000を使用しています。 あるフォルダの中に二つのファイルがあります。 一つは「商品リスト」もう一つは「納品書」という名前です。 商品リストには1行目には項目、2行目からA、B、C、Dの列に順に商品コード (5桁か6桁の数字のみ)、メーカー名、商品名、定価と入っています。 約1000件のデータがあります。 納品書には項目やその他があり実際の数値の入力欄は9行目から開始です。 B9に商品コードを入力すると自動でE9にメーカー名、H9に商品名、Y9に 定価が入るようにしたいのです。 ちなみにシート名は納品書ですが控えを作成する為、作業グループでもう一つのシートと合わせて入力しています。(もう一つのシート名は納品書控) あと、たまに商品リストに載っていない商品を入力する場合も有ります。 その場合は納品書の商品コードの欄は空白で、メーカー名、商品名、定価 のみを手入力します。 以上なんですがこの説明で解りにくければ補足させて頂きますので お申し付け下さい。

  • エクセル 8ケタの数字から日数を算出するには

    いつもお世話になります。 下記のエクセルの表があります。 取扱開始日 取扱終了日 20030810 20040914 この商品の取扱日数を算出したいのですが、現在は、LEFT関数やRIGHT関数を使うなど、手作業に近い形で日数を算出しています。 8ケタの数字から簡単に算出することは可能でしょうか?

  • エクセルで自動的に1~100まで数字を入れる方法

    エクセルで表を作りました。左端の縦一列に1~100まで数字を入れるとき、「1、2、3」と手入力するのではなく、自動的に1~100まで数字を入れるには、どうしたら良いですか?

  • EXCELのマクロ・VBAについて

    エクセルでデータ管理をしております。 エクセルで表になっている文字の羅列をVBA・マクロ等を使用して、 ウェブページの入力フォームに自動で入力、ウェブページの結果を再度エクセルに返すことはできますでしょうか? こちらがサイトになります。 アマゾンのFBA料金シュミレーター https://sellercentral.amazon.co.jp/hz/fba/profitabilitycalculator/i... こちらのサイトはAmazonの中に間借りして、商品を販売している業者のためのサイトです。 ここに販売している商品のコード、販売価格、仕入れ価格を入力することによって、Amazonに支払う手数料が表示されます。 例えば、「コカ・コーラ 2L ペットボトル×12本」という商品が一つ売れた場合の手数料が知りたいとします。 その場合「B018HVON60」(コカ・コーラ 2L ペットボトル×12本の商品コード)を入力して「検索」を押します。 その後、「FBA発送の場合」の下にある「商品代金」「Amazonへの納品」「商品原価」にそれぞれ「2980」「100」「1500」と入力して「計算」を押します。 結果として出てきた「純利益」である598円という数字と、「純利益率」である20%という数字をエクセルに返したいということになります。 話を整理させていただきます。 現在エクセルでは、(1)商品コード(2)商品代金(3)Amazonへの納品(4)商品原価 を一覧として表にしております。 それらのデータを利用して(5)純利益(6)純利益率 という2つの数値を取り込んで、自動でその表に入力したいと考えております。 自分で2~3日本気で調べていたのですが、求めているページも見つからず困っております。 分かる方おられましたら宜しくお願い致します。

  • エクセルの質問です

    A列は空白 B列に商品をあらわ5桁のコードが入っています。 C列にも同じく商品を表す5桁のコードが入っているのですが、 B列のセルと隣り合ったセルには同じ数字が入っていません。 D列には取引先の会社名が入っています。     B1に入ってる5桁の数字と同じ数字が入っている C列のセルを探し、 そのセルの隣のD列の会社名をA1のセルに表示させたいのですが、 どう関数を組んだらいいのでしょうか? A   B    C   D     12345 12354 A社    12334 12345 B社    12443 12544 C社 上の表の場合B1とC2数字が同じなのでA1にB社と表示させたいのです。  

  • EXCEL計算式について

    EXCELで、計算式を作りたいのですが、検索などしても合致するものが見つけられなかったため、こちらで質問をさせていただきます。 A1に商品番号を入力したときに、それにあったロッド番号がB1自動生成する計算式を作りたいと思っています。 商品番号の構成は 「abcd」の四桁のアルファベット(これはすべて固定) + 5桁の数字 = 商品番号 となっており、abcd12345やabcd52586などの商品番号となっています。 そしてすべての商品番号には下記のようにロッドが割り振られています。 abcd12015であれば120000012049のロッド abcd22580であれば225500022599のロッド abcd34945であれば349000034949のロッドとなります。 これだけでは意味がわからないかと思うのですが、 abcd12015であれば12000~12049のロッド abcd22580であれば22550~22599のロッド abcd34945であれば34900~34949のロッドという扱いになり、 「~」の部分を「00」にすると、最初に提示したロッドとなります。 また、ロッドの方には「abcd」は含まれません。 ロッドは50区切りで、ロッドの左側の数字の下二桁は00か50、ロッドの右の数字の下二桁は49か99で固定です。 A1に商品番号を打ち込むと、自動でB1にそのロッドを表記させる式はどの様に作ればよいでしょうか? ご教示お願い致します。

  • Excelでの逆の並べ替え

     いつもお世話になります。 店舗コード  店名 ○○○○   ×××× △△△△   □□□□ ☆☆☆☆   ※※※※ となっている表を、 店舗コード  店名 ☆☆☆☆   ※※※※ △△△△   □□□□ ○○○○   ×××× としたいのですが、簡単な並べ替えの方法を教えてください。  配達に出かける車の積み込みをするために、納品順と逆の順番で積み込みをするためです。よろしくお願いいたします。

  • ExcelのVLOOKUPについて

    B2に商品名を出したいと思っています。 A2の12桁の数値コードを使ってVLOOKUPにてD1~E4の表の商品名を参照することはできますでしょうか? A2に12桁はD2の13桁と違ってわざと一桁少なく入力して参照したいのです。

  • 表計算ソフトExcelについての質問

    表計算ソフトExcelについての質問です。 次のようなことをしたいのですが、Excelの関数などを利用して、することができないでしょうか。ご存じの方は教えてください。一方に、「1111、1112、…(コード番号)」と4桁の数字の一覧表がある。もう一方にも似たような4桁の数字の一覧表がある。二つの表には共通したコード番号がいくつか含まれています。(コードの総数はそれぞれちがいます。) この二つの一覧表を照らし合わせて、両方の表に共通するコード番号を見つけ出して、その番号を知りたい。印をつけるなり、抽出して取り出すなりして。何百もあるコード番号を、二つの表を照らし合わせて、目で見て拾い出すのには時間がかかるので、Excelでできないものかと思ったのですが、このようなことはできますか。ご存じの方は教えてください。よろしくお願いします。

  • エクセル vbaでの相談です

    エクセルでの質問です。 販売管理表を作りたいと思います。 sheet1を商品マスター表とし、下記の見出しがあって A1 JANコード(上一桁4からの番号で13桁) B1 商品コード (14桁) C1 商品名 D1 価格 以下A2行以降、A1行の見出しを元に商品詳細があるとします。 sheet2の下記のA1行を見出しとし、A2行から販売実績をユーザーフォームを使って入力していきたいと思います。 A1 JANコード B1 商品コード C1 商品名 D1 価格 E1 販売番号 フォームを作成し、入力窓に JAN、商品コードのいずれかを入力すると、他の入力窓にsheet1の商品マスター表から該当する商品名、価格を自動入力し登録ボタンを押すと、sheet2の該当セルに反映されるということはできますでしょうか? そして異なる商品のまとめ買いの件数も知りたいので、フォーム上で複数アイテム登録できるようにし、販売番号で件数を管理したいのですが、そちらも可能でしょうか? 販売番号も自動で通し番号が入るようにしたいです。わかりにくい文章で申し訳ありません。ご教授の程、よろしくお願い致します。

専門家に質問してみよう