Board logo

標題: [發問] EXCEL可以將儲存格內容對應到工作表做處理嗎? [打印本頁]

作者: kaosh22    時間: 2015-3-24 21:28     標題: EXCEL可以將儲存格內容對應到工作表做處理嗎?

本帖最後由 kaosh22 於 2015-3-24 21:31 編輯

各位前輩大家好
小弟希望利用EXCEL將原始資料的料表轉換成較詳細的內容
以下是圖文說明


1.原始資料為A欄~D欄,目前我可以用簡單的程式將A欄字串分割為F~I欄
[attach]20503[/attach]


2.F2的內容是AS1,希望能自動將4,15,9,20對應到AS1工作表的欄位裡
[attach]20505[/attach]


3.將已更新的表格複製純文字到結果工作表內,之後再依序將SHEET1的F3~F6作相同處理,希望最後的成果如下圖
[attach]20506[/attach]

這邊因為原始資料的命名原則,會出現如F4,F5都是相同的FS1,所以才會希望先讀完F2的內容後再依序向下作業
因為要處理的資料有時可能會到幾百筆,這邊只是先打出一些例子,希望可以透過VBA減少處理的速度
如果大家有更好的想法也請不吝提出,謝謝
作者: GBKEE    時間: 2015-3-25 06:23

回復 1# kaosh22

圖一  AS1-1-0805  如何得到->        4        15        9        20
圖二,圖三 如何帶入結果.
作者: kaosh22    時間: 2015-3-25 07:08

非常抱歉,那個是自己想填其他值去測試沒改回來
應該是 AS1-1-0805 →  1   8   5   1  ,最後的1是把Q'TY的值直接複製過去
圖片二是將1,8,5,1帶入工作表有上色的儲存格後將料表更新
最後才會是圖片三的樣子
原本的內容好像不能編輯了,我把改過的附檔也一併附上

圖一.
[attach]20511[/attach]

圖二.
[attach]20512[/attach]

圖三.
[attach]20514[/attach]

[attach]20516[/attach]
作者: GBKEE    時間: 2015-3-25 08:17

回復 3# kaosh22
1# 有說:這邊因為原始資料的命名原則,會出現如F4,F5都是相同的FS1,
3# 圖片二是將1,8,5,1帶入工作表有上色的儲存格後將料表更新
當F4,F5都是相同的FS1 要如何帶入FS1(工作表)有上色的儲存格.
  1. Option Explicit
  2. Sub Ex_圖一()
  3.     Dim Ar(), Ay(1 To 5), i As Integer, Sp As Variant
  4.     With Sheets("SHEET1")
  5.         i = 2
  6.         Do While .Cells(i, "A") <> ""
  7.             Erase Ay
  8.             ReDim Preserve Ar(1 To i - 1)
  9.             Sp = Split(.Cells(i, "A"), "-")
  10.             Ay(1) = Sp(0)
  11.             Ay(2) = Sp(1)
  12.             Ay(3) = Mid(Sp(2), 1, 2)
  13.             If Len(Sp(2)) > 2 Then Ay(4) = Mid(Sp(2), 3, 2)
  14.             Ay(5) = .Cells(i, "C")
  15.             Ar(i - 1) = Ay
  16.             i = i + 1
  17.         Loop
  18.         .Range("F2").Resize(i - 2, 5) = Application.Transpose(Application.Transpose(Ar))
  19.     End With
  20. End Sub
複製代碼

作者: kaosh22    時間: 2015-3-25 08:48

GBKEE板大你好,感謝你的回覆
請問是要問有重覆值的情況要如何處理嗎?

另外想問一下內文的程式,我在巨集開啟後沒有作用
想問執行後會出現什麼動作??
謝謝
作者: GBKEE    時間: 2015-3-25 08:59

回復 5# kaosh22
當F4,F5都是相同的FS1 , 你要取哪一筆資料到FS1(工作表)有上色的儲存格.

F-J 欄清空後,執行程式看看.
作者: kaosh22    時間: 2015-3-25 10:08

因為原始資料的區分方式是取決G欄的type與後面的數字格式
2筆FS1都需要抓後面的值來取得不同的料

所以才想問問看是否有辦法抓完F4欄的FS1後
能否有辦法繼續處理F5欄內的FS1

問題有點多,如有更好的方式也歡迎指正
另外一開始的巨集可以用,謝謝版大
作者: kaosh22    時間: 2015-3-25 11:21

各工作A欄使用vlookup(H$2&ROW(N1),N1:R9,3,FALSE)
B 3→4
C 3→5
D 3→6
用此函數配合N欄(N2=O3&COUNTIF(O$2:O3,O3)),可將紫色格內的值對應到O欄的項目
就可以把no.1~4的P,Q,R欄對應到A,B,C欄

下面的列只是將對應的ROW( )更改數字
作者: GBKEE    時間: 2015-3-25 13:14

回復 8# kaosh22

各工作A欄使用vlookup(H$2&ROW(N1),N1:R9,3,FALSE) 這我了解
為何各工作的筆數不同,是如何決定各工作的筆數

[attach]20520[/attach]
作者: kaosh22    時間: 2015-3-25 13:35

工作筆數是指AS1有2筆,FS2卻有6筆這樣嗎?

因為一開始的原始資料僅有敘述這個TAG是什麼東西
例如:FS2-2-08是FIELD SUPPORT
但是這個SUPPORT是由好幾個零件組合而成
所以開頭的AS1會有2個零件,FS2會有6個零件

而我們會有一本厚厚的support standard
上面有紀錄這組support會有多少個零組件




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)