[[20200812145630]] 『コードを紐づけ、0データを表示させない、新規コ=x(ソフト) ページの最後に飛ぶ

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

 

『コードを紐づけ、0データを表示させない、新規コード内容は表示する方法』(ソフト)

下記をEXCELで作成したいのですが、教えて下さい。

1.管理しているコードと相手のコードを紐づけたい。
2.毎月 0 の行は表示したくない。
3.管理コードにない相手コードの新しいコードも表示したい。

<コード>
管理コード
 A001 ラベル
 B002 テープ
 B001 テープ長

相手コード
 BX ラベルA
 BG テープ
 XX テープLONG

A001=BX
B002=BG
B001=XX

<相手データ>
 コード 名前   7月 8月
 BX ラベルA   100  0
 BG テープ     0  40
 XX テープLONG  50 30

下記のように表示したい↓


<7月シート>
 コード 名前    7月   8月
 A001 ラベル    100  0
 B001 テープ長   50    0

<8月シート>

 コード 名前    7月   8月
 B002 テープ       0    40
 B001 テープ長   50    30

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 >1.管理しているコードと相手のコードを紐づけたい。
 理解できません。
 >下記のように表示したい↓
  VLOOKUP関数でどうすでか。
(SOHU) 2020/08/12(水) 17:12

毎月、相手データが送られてくるのですが、相手コードを管理コードに目視で確認し管理コードで毎月リストを作成しています。
なにか変換できるいい方法があればうれしいです。
月によって0の数字もあるので、数字があるのだけリストにしたいです。
相手コードが新しく追加されるので、リストに新しいコードの行が表示されるようにしたいです。

(ソフト) 2020/08/12(水) 17:27


マクロを使った回答でよければ、以下について説明して下さい。

<コード>とうのはシート名でしょうか。
ブック名、セル番地もわかるように例示お願いします。

毎月の、相手データは、必ず2ヶ月分あるのでしょうか。
これも、ブック名、シート名、セル番地について説明お願いします。

<7月シート><8月シート>はシート名でしょうか。
シートは最初から用意されているのでしょうか。
ブック名、セル番地がわかるようにお願いします。

(マナ) 2020/08/12(水) 22:55


●<コード> はシート名ではありません。

管理コード.xlsx シート名:Sheet1

   A         B         C
1 管理コード 管理名
2 A001    ラベル     
3 B002    テープ 
4 B001    テープ長
5  : 

●データは月に何度もやり取りをし、その都度作成しています。

例1
相手データ.xlsx シート名:7月25日

   A         B           C  D     E      F    G      H     
1 相手コード 相手名      加工 7/24  7/27  7/29  7/30  7/31   
2             納品 7/27  7/29  7/30 7/31  8/1      
3 BX         ラベルA   3000 100   0    0      50     30 
4 BG         テープ   2000  0   40   50       0     40   
5 XX         テープLONG  500  50    30   20       0     70  
6  :             :

例2
相手データ.xlsx シート名:7月29日

   A         B           C  D     E      F    G    H     I
1 相手コード 相手名      加工 7/29  7/30  7/31  8/1  8/2  
2             納品 7/30 7/31  8/1   8/2  8/3
3 BX         ラベルA     3000   0   50   30    30    0  
4 BG         テープ   2000   50    0   40     0   40  
5 PJ          紙        100   50    10   10    10   10  ←追加
6 XX         テープLONG  500  20     0   70     0   70  

●<作成したいEXCEL(完成図)>
例1
加工資料.xlsx シート名:7月25日
※D列の0データは表示しない

   A         B          C  D      E      F      G        H     I     J   K
1 コード   名        加工  7/24   7/27  7/29   7/30    7/31   合計   在庫
2             納品  7/27  7/29  7/30  7/31     8/1       
3 A001   ラベル     3000  100   0      0      50     30     180  2000
4 B001      テープ長     500   50    30     20       0     70     170  1000
5  :             :

例2
加工資料.xlsx シート名:7月29日
※相手のコードを追加表示
※D列の0データは表示しない
※合計や在庫は手入力しています。

   A         B            C   D     E    F     G    H     I   J   K
1 コード   名         加工  7/29  7/30  7/31  8/1  8/2  合計   在庫
2              納品  7/30 7/31  8/1   8/2  8/3
3 B002   テープ     2000    50    0   40     0   40   130     
4 空白      相手名or空白   100    50    10   10    10   10    90
5 B001   テープ長      500   20     0   70     0   70   160
6   :          :

※空白コードは管理コード.xlsx シート名:Sheet1に追加していくイメージです。

(ソフト) 2020/08/13(木) 10:02


相手コードとの対照表がありません。
こんな感じにできませんか。

 管理コード.xlsx シート名:Sheet1

    A         B           C
 1 相手コード  管理コード  管理名
 2  BX          A001    ラベル     
 3  BG          B002    テープ 
 4  XX          B001    テープ長

(マナ) 2020/08/13(木) 11:04


マナ様
相手コードとの対照表は、上記のように作成することは可能です。
ありがとうございます。

(ソフト) 2020/08/13(木) 11:34


マナ様

相手名も入れたいです。
管理コード.xlsx シート名:Sheet1

    A         B      C           D
 1 相手コード  相手名   管理コード   管理名
 2  BX         ラベルA    A001    ラベル     
 3  BG         テープ    B002    テープ 
 4  XX         テープLONG   B001    テープ長

(ソフト) 2020/08/13(木) 11:38


一つのブック(加工資料.xlsx)に、
日付名のシートを追加していくのでしょうか。

(マナ) 2020/08/13(木) 12:25


マナ様

一つのブック(加工資料.xlsx)に、日付名のシートを追加していきます。
(ソフト) 2020/08/13(木) 13:29


相手データ.xlsxというのも、複数の日付シートが蓄積されているのですか?

(マナ) 2020/08/13(木) 14:23


マナ様
相手データ.xlsxも複数シートが蓄積されていますが、1シート1ファイルで保存しなおすことは苦ではありません。

(ソフト) 2020/08/13(木) 14:25


マクロをどこかに保存する必要があります。
なので、管理コード.xlsxは 管理コード.xlsm とし、
下記のマクロを保存してください。

相手データ.xlsx と 加工資料.xlsxも開いた状態で、
Alt+F8からマクロを選んで実行してください。
相手データ.xlsxで、アクティブになっているシートについて処理します。

 Option Explicit

 Sub test()
    Dim 対照表
    Dim ws As Worksheet
    Dim r As Range
    Dim v

    対照表 = ThisWorkbook.Worksheets("Sheet1").Cells(1).CurrentRegion.Value
    Set ws = Workbooks("相手データ.xlsx").ActiveSheet

    ws.Copy Workbooks("加工資料.xlsx").Sheets(1)

    With ActiveSheet.Cells(1).CurrentRegion
        Set r = Intersect(.Cells, .Offset(1))

        v = r.Columns(1).Value
        r.Columns(1).Value = Application.VLookup(v, 対照表, 3, False)
        r.Columns(2).Value = Application.VLookup(v, 対照表, 4, False)
        r.SpecialCells(xlCellTypeConstants, xlErrors).ClearContents

        .AutoFilter 4, 0
        If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
            .Offset(1).EntireRow.Delete
        End If
        .AutoFilter
    End With

 End Sub

(マナ) 2020/08/13(木) 16:23


マナ様

下記行がデバックとなって黄色くなりました。
申し訳ありません。

        r.SpecialCells(xlCellTypeConstants, xlErrors).ClearContents
(ソフト) 2020/08/13(木) 16:34

マナ様
該当するセルが見つかりません。とエラー表示されます。
(ソフト) 2020/08/13(木) 16:37

試しに、その行を削除して実行するとどうなりますか。

(マナ) 2020/08/13(木) 16:44


マナ様
ありがとうございます。
全てファイルを一度とじ、開きなおしたら出来ました。
すごいです。
マクロは、
どのようなことが書かれているのでしょうか。

(ソフト) 2020/08/13(木) 16:48


こんな流れです

1)相手データの日付シートを、加工資料にシートコピー
2)相手コードをVLOOKUPで、管理コードに置換
3)相手名をVLOOKUPで、管理名に置換
4)新規のコードはVLOOKUPでエラーになるのでクリア
5)オートフィルタでD列の0を抽出
6)抽出されたら、行削除
7)オートフィルタ解除

(マナ) 2020/08/13(木) 16:59


コメント返信:

[ 一覧(最新更新順) ]


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