[[20170414212215]] 『1個当たりの重量がわかっている複数品種の個数・潤x(白) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『1個当たりの重量がわかっている複数品種の個数・重量自動換算』(白)

すいません、業務効率化をするためにアイディアをご教示ください。

複数の品物があり、1個当たりの重量がわかっています。

業者の出荷伝票を整理する作業なのですが、品物ごとに重量もしくは個数しか書いておらず、入力上は、品物・個数・重量とすべて埋めたいのですが、現在は手計算で行っています。

品物:みかん、りんご、メロン、かぼちゃ(200種類くらいある)
1個当たりの重量:みかん(100g)、りんご(150g)、メロン(500g)、かぼちゃ(1kg)

あとからオートフィルなどで入力すれば早いのかもしれませんが、パートの方に入力してもらうため、品物と「個数」もしくは「重量」のどちらかを入れると、一方のセルに換算した「重量」もしくは「個数」が入るようにしたいのです。

ちょっと数式のとっかかりがつかめないため、うまい手があれば教えて頂けないでしょうか?

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 1.入力するレイアウトを提示してください。

 2.一個当たりの重量って、小数点以下は無いですか?

   ピッタリ割り切れないケースって考える必要ないですか?
   個数は先ず間違えないでしょうが、重量は心配ですねぇ(個人的には)

(半平太) 2017/04/14(金) 22:21


半平太 様

返信ありがとうございます。

1.レイアウト(例)は↓の感じりです。行列は各農協によってずれたりはします。(レイアウトずれてなければよいですが)

A列:栽培方法
B列:所属支店
C列:氏名
D列:年月日
E列:銘柄
F列:重量
G列:個数
※FかGのどちらかしか伝票に記載がないのが多いため、Fを入れたらGが、Gを入れたらFが入るような形にしたい。
また、E列に入る銘柄は数百種類あり、その種類ごとに1個当たりの重量は決まっています。

2.1個当たりの重量は小数点以下はありますが、たとえばg単位にすれば小数点以下はなくなります。0.1kgとかで入れるようになっているので。

ぴったり割り切れないケースは、四捨五入しているそうで、それでかまわないそうです。

よろしくお願いします;
(白) 2017/04/17(月) 07:10


 >行列は各農協によってずれたりはします
 レイアウトは一定じゃないと言うことですか。これは難問です(私には)。

 >あとからオートフィルなどで入力すれば早いのかもしれませんが、
 このオートフィルが、具体的にどう云うことをするのか分からないですが、
 その方法をもう少し掘り下げると、何かアイデアが浮かぶかも知れません・・けど、
 私には難し過ぎる問題のようです。

 他の回答者のレスをお待ちください。m(__)m

(半平太) 2017/04/17(月) 08:15


品名と重量の換算表をSheet2に定義してあるものとします。
また、重量の入力はg単位とします。kg単位が良ければ、ご自分で変更してみてください。また、小数点以下の処理は、セルの書式設定でも利用すれば良いでしょう。個数を切り上げたいならば、切り上げ処理を追加してみてください。
	A		B
1	品名		重量
2	みかん		100
3	りんご		150
4	メロン		500
5	かぼちゃ	1000

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long

    If Target.Count <> 1 Then Exit Sub
    If Target.Column <> 6 And Target.Column <> 7 Then Exit Sub

    With Sheets("Sheet2")
        For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
            If .Cells(i, "A").Value = Cells(Target.Row, "E").Value Then
                Select Case Target.Column
                Case 6
                    Cells(Target.Row, "G").Value = Cells(Target.Row, "F").Value / .Cells(i, "B").Value
                Case 7
                    Cells(Target.Row, "F").Value = Cells(Target.Row, "G").Value * .Cells(i, "B").Value
                End Select
                Exit For
            End If
        Next i
    End With
 End Sub
(???) 2017/04/17(月) 09:34

おっと、コーディングし忘れがありました。With文の前後に、イベント発生抑止と復帰のコードを加えてください。

    Application.EnableEvents = False

    With Sheets("Sheet2")
    …
    End With

    Application.EnableEvents = True
(???) 2017/04/17(月) 14:16

半平太 様

>行列は各農協によってずれたりはします

 レイアウトは一定じゃないと言うことですか。これは難問です(私には)。
 →確かに行列はずれますが、農協数は多くないので、関数で処理できるのであれば、各農協ごとのシートで関数を作れば解決します。
  基本的にはレイアウトは固定として、関数処理でなんとかなるとありがたいです。

 >あとからオートフィルなどで入力すれば早いのかもしれませんが、
 →たとえば、リンゴ、個数が未入力のもののみをオートフィルして、重量から個数換算するというやり方です。
今は一個一個手計算して入れているので少しは早くなるのですが、やはり効率が悪いです。

??? 様
 ありがとうございます。
 VBAでしょうか?
 すいません、すぐには理解できないので、試してみます。
 関数処理だとなおありがたいですが、難しいですかね?

(白) 2017/04/17(月) 19:41


お仕事の流れがいまいちわかりませんが、

1・業者の出荷伝票(紙)を見て、
銘柄(E列)を入力した後、その銘柄に対応した1個当たりの重量を確認する(数百種)

2・個数 又は 総重量 を、伝票(紙)を見て、エクセルに入力する

3・F列とG列 両方が自動で埋まるようにしたい

ということでしょうか。
データ数等によっては重くなるかもしれませんが
右側の邪魔にならないところ、例えばN列、O列に
銘柄 単位重量(g/個)
みかん_001 90
みかん_002 100
みかん_003 110
みかん_004 120
みかん_005 120
みかん_006 110
りんご_001 150
りんご_002 155
りんご_003 160
りんご_004 170
りんご_005 140
りんご_006 100
メロン_001 500
メロン_002 550
メロン_003 450

こんな、銘柄-単位重量対応リストを作成する

H列:総重量入力列
I列:個数入力列
とする
J列:=VLOOKUP(E2,$N$2:$O$16,2,FALSE)
とし、E列の銘柄と一致する単位重量を、リストから引っ張ってくる。

F列:=IF(H2<>"",H2,I2*J2)
総重量が未入力なら、個数×単位重量を表示
G列:=IF(I2<>"",I2,H2/J2)
個数が未入力なら、総重量÷単位重量を表示

ということがしたいのでしょうか…?

個数が整数にならないとか、色々問題はありそうですが、
数値の細かい所は、仕事の実情に合わせてroundup, rounddown, round使っていただくとして、
基本的な作り方は上のような単純なものでいかがでしょう。

単位重量の自動化は、
作業者の入力ミスの無いよう、データの入力規則を使うか、
自動化せずに、数値を直接入力するほうが良いかもしれません。


(tata) 2017/04/26(水) 12:08


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.