• ベストアンサー

エクセル 一度に複数並び替えする方法?

 PCはwindowsXP ソフトはエクセル2003を使っています。  とある商品を倉庫で保管し、日々メーカーから送られてくる 出荷指示書に従い出荷する仕事をしています。  商品は四種類、納品先は30箇所ほどです。  メーカーから送られてくる出荷指示書は行き先一箇所につきA4用紙 一枚で送られてくるのですべての行き先に出荷がある場合40枚ほどに なります。  倉庫の出荷担当者が40枚めくって見るのは大変だから、出荷指示書を 一枚のリストにしてほしいというのでエクセルでリストを作っています が、その仮定でミスがたまにあり、そのミスが大きな損失につながって ます。  <例>◆メーカーからの出荷指示書(A4用紙横書き)     -1枚目-   納品日10/22   納品先 Aセンター   1L   6ケース   200ml  40ケース   ○○味 20ケース     -2枚目-   納品日10/22   納品先 Bセンター   ○○味 30ケース   1L   10ケース   200ml  20ケース    ↓ ↓ ↓この出荷指示書を以下のリストにエクセルで作り直す  行き先    1L 200ml ○○味1  ○○味2  Aセンター 6c/s 40c/s 20c/s  Bセンター 10c/s 20c/s 30c/s   ・     ・   ・    ・   ・     ・   ・    ・  問題は出荷担当者に渡すエクセルのリストの方は  商品の種類が「1L, 200ml, ○○味1, ○○味2」と 順番が決まってますが、例にあるとおり、メーカーから 送られてくる出荷指示書は常に順番がバラバラで エクセルのリストに作り直す仮定でたまにミスがあり、そのため 数をまちがえて出荷して賞味期限の関係でまちがえた分が再出荷 できない場合はまるまる会社が買い取りということになる場合が ありました。  入力したら必ず一度は見直ししているのですが、自分で入力したせ いで先入観があるのか見直ししてもまちがえていることがあるのです。  それで入力のしかたを変えようと思っています。  商品の順番は出荷指示書どおり入力して後から並び替えで 「1L, 200ml, ○○味1, ○○味2」となるようにしようと思っている のですが、問題は行き先40箇所分、範囲指定して並び替えを40回することになるということです。  行き先    1L    200ml    ○○味1    ○○味2  Aセンター  6c/s 40c/s 20c/s (ここまで範囲指定して並び替え)  行き先    ○○味1  1L     200ml     ○○味2  Bセンター   30c/s 10c/s 20c/s (ここまで範囲してして並び替え)    ・    ・    ・  これをすべての行き先に対して「1L, 200ml, ○○味1, ○○味2」の 順に一度で並び替えできるようなプログラムを組むことは できるでしょうか?  関数やマクロなどの知識もほとんど初心者ですが、がんばって 覚えようと思っています。  どなたか教えてください。よろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

No3です。以下はアドバイスです。 >40箇所分、40枚の紙でFAX来ます。 会社にスキャナーなどはありませんでしょうか。 今のスキャナー(或いはスキャナー付きプリンター等)では、印刷した文字をデータにしてくれる機能が付いているのがあります。 手書きでなく印刷されたFAXであれば、手入力の作業から楽できます。 > 商品は四種類、納品先は30箇所ほどです。 別途シートに 商品マスタ  商品ID 品名 単価 在庫  10001 1L  10002 200ml  10003  ○○味  10004  ○○味2 納品先マスタ  納品先ID 会社名 住所 電話番号・・・・ ・・・ の2つのシートは作成してください。 品名、会社名には、定義の名前をつけておきます。 入力する際の品名の列、会社名の列には入力規則でリストに設定します。 個数の列にも 入力規則で数値を設定します。 >それを「一枚の用紙に」リストを作るよう出荷担当者から頼まれました >担当者に渡すリストは >■縦の列・・・納品先(Aセンター、Bセンター、Cセンター) >■横の行・・・商品種類(1L, 200ml, ○○味1, ○○味2) 作業のダブルチェックを考えると、本日出荷の品名ごとの数量合計を渡す。 1L    120 200m   200 ○○味1 320 ○○味2 330 いった様な紙で、いったん倉庫から必要な数を取り出させます。 次に、納品書のシートに応じて、荷造りさせます。 取り出した商品が全て、なくなれば在庫ミスはなかったことになります。 手間の様に感じますが、一人の作業の中でダブルチェックが完了します。 >それとは別にぜひVBAを勉強しようと思っています。 良いことですが、その前に会社の仕事の流れを整理して頭に入れておく必要があります。 云われたことを単発に機能化したファイルを沢山作っても改善には結びつかないです。 ひとつのファイルで全体が管理できることを最終目標にします。

timothykun
質問者

お礼

返信ありがとうこざいます。 出荷時の作業のことまで気をつかって教えてくださり、本当にありがとうございます。  出荷作業ではまずは全行き先の商品ごとの総数を倉庫から出してから 行き先ごとに分けていく、というやり方がセオリーだと自分も思っていますが、自分は出荷担当の上司ではないので、そのやり方を「お願いはできても」「命令」はできない立場です。  今の出荷担当はそのやり方をしようとしません。  どこの会社も多いとは思いますが、作業員一人あたりある程度余裕があるような仕事量をあてているわけではなく、その出荷担当は他の商品の出荷も同時にやっているので、チェックよりも作業をひととりこなすので精一杯のようです。  とりあえず、出荷担当者に渡すリストには一番下に商品ごとの 総個数も出るように作ってあります。  そういう状況の中で自分はどうすることが他の担当の人との連携が うまくいかせることになるのか考えていますが、なかなか難しいです。  とりあえず、ピボットテーブルでの処理で作ったリストを使いながら、VBAを勉強していこうと思います。  指示書をFAXしてくるメーカーさんは、商品の種類の順番についても 数字の大きさについても全く改善してくれません。 本当に見えづらく、印刷状態も悪く「8と3と6」が区別がつきづらく いちいち電話で問い合わせる手間もかかりやりづらいです。  でもそのことに文句言ってても作業はすすまないので その与えられた情況の中でどうするかを考え、それをしていくしか ありません。とりあえず、この方向性でがんばってみます。  お付き合いくださり、本当に感謝します。  

その他の回答 (4)

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

読む気がしないほど質問分が長く、標題も何のことか良くわからない。 ●シートに入力直後のシートのデータの例を挙げよ。 ●最終出来上がりのシートの例または印刷の例を挙げよ。(->担当者別+商品別でよいのかな。商品の並び順はコード順?) ーー それで下記が改善のヒントになれば。 並び順は エクセルにはマクロの記録がある。ソートの操作も記録できる。 一度正しい操作をしてマクロの記録をとる。 それをボタンに登録する。このやり方はWEBで勉強のこと。 XX順。○○順などを2種類ぐらい作れば細かい間違いはなくなるのでは。(両者押し違えは別として)。多分1種類で済むはず。 ーー 出荷担当者ごとに別シートが要る(配る)のか。 ーーー そうなると合理化なんか考えるのだったら、VBAを勉強して、それで対処しないとどうしようも無いと思う ーーー 担当者数を繰り返すなら フィルタオプションの設定ででも担当者コードで抜き出しできる。 ーー 出荷指示書の入力は(もとのメーカーと電子化しないと)やむをえないとして、抜き出しーー>並べ替えーー>印刷を繰り返すのは、人間がするのがいやならVBAしかない。 あるいは担当者別に並べて、1担当者の分だけ紙に印刷し、全員分 自動印刷も出来る。後者の方が簡単。

timothykun
質問者

お礼

返信ありがとうございます。 文章力の問題、ごもっともです。よく知り合いに言われます。 これでも思い浮かんだままに文章を入力しているのではなく、 自分なりにどういう順番で話そうかなど考え、文章もなるべく短く なるように考えているので、文章を作る能力が足りないということだと 思います。 出荷担当者は一人です。 メーカーからの指示書は行き先ごとで別々の紙でFAXされてきます。 商品の順番もバラバラです。40箇所分、40枚の紙でFAX来ます。 <メーカーからのFAXの例-1枚目-> 納品日10/22   納品先 Aセンター ・200ml 40c/s ・○○味1 20c/s ・1L 6c/s (問題は商品名の順番が指示書によってバラバラなことです) それを「一枚の用紙に」リストを作るよう出荷担当者から頼まれました  担当者に渡すリストは  ■縦の列・・・納品先(Aセンター、Bセンター、Cセンター)  ■横の行・・・商品種類(1L, 200ml, ○○味1, ○○味2) 作成するリストの方は商品の種類の順番は固定です。 データの領域はそれぞれの出荷個数を入力します。  他の方の返信でも言いましたが、とりあえずはピボットテーブル での処理をしたリストを使い、それとは別にぜひVBAを勉強しようと 思っています。最終的には自分で作れるようになりたいです。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

>この出荷指示書を以下のリストにエクセルで作り直す >行き先    1L 200ml ○○味1  ○○味2 >Aセンター 6c/s 40c/s 20c/s >Bセンター 10c/s 20c/s 30c/s この様に入力されているのでしょうか。入力ミスしやすい、追加、変更に対応しにくいパターンだと思います。  納品日 行き先   品名 数量  10/22 Aセンター  1L   6  10/22 Aセンター  200mL  40  10/22 Bセンター  ○○味 30 ・・・・とメーカーの指示書みながら縦方向にデータを入れます。 変更や追加があれば、データを修正するではなく、  10/22 Aセンター  200mL -40 10/22 Aセンター  200mL  30 とか変更の記録が残るようにします。 後は、別シートにご希望の指示書、納品書のフォーマットを作成して 日付や行き先を入れると、一覧表が自動で作成されるような関数、VBAを準備すると言った手順です。 入力作業にも、VBAでフォームを作成したり、入力規則を設定したりして、ミスが発生しにくく、入力作業はしやすいファイルに仕上げていく。 といった手順に考えます。 入力シートは、入力しやすく、集計しやすく、記録が残る 印刷シートは、体裁のよいシートに出来上がります。

timothykun
質問者

お礼

返信ありがとうございます。 入力用シートと、印刷用シートは別にするというご意見 とても参考になりました。 やはり一人で考えているとこういう単純だけども効果的な 発想がなかなか浮かばないもので、より複雑な方にしていってしまう 傾向があるようです。  この際だから、VBAを勉強していこうと思います。  ありがとうございました。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

たぶん、ピボットテーブルでいけると思います メーカーからの出荷指示書を入力するときに次のように入れます A列:会社名(1行目に「会社名」と入れておく/以下同様) B列:商品名 C列:数量 これを、順番無視で入力します あとは、ピボットテーブルで 会社名を「行のフィールド」へ 商品名を「列のフィールド」へ 数量を「データーアイテム」にドラグします で、どうでしょう

timothykun
質問者

お礼

返信ありがとうございます。 なるほど。ピボットテーブルならばすぐにでもできますね。 でもいい機会なのでとりあえず、当分はピボットテーブルでの 処理をしたリストを使って、それとは別にVBAも覚えていって 自分でプログラムできるように勉強していこうと思っています。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

> 商品の順番は出荷指示書どおり入力して ここのシート構成を具体的に提示されては?

timothykun
質問者

お礼

返信ありがとうございます。 出荷担当に渡すリストは 本文の↓↓↓以下のものです。 一番簡単なのはメーカーから送られてくる出荷指示書の 商品の種類の順番を一定にしてもらうことなのですが、 メーカーさんにはそれを提案したらできないと言われたので こっちでなんとかするしかなくなってしまったのです。

関連するQ&A