2016-04-04 153 views
0

我是編程新手,一直在困惑這個挑戰一段時間。我懷疑解決方案會涉及嵌套條件和/或用戶定義的函數。我有類似這樣的已經從最小的排序,以最大的「片#」列的表:Excel VBA連續和非連續數字級聯

QTY Type Sheet# 
1 B 1000 
5 B 1001 
3 B 1002 
2 B 1005 
7 B 1009 
4 B 1010 
2 B 1010 
3 B 1010 
1 B 1011 
2 B 1012 
6 B 1013 
8 B 1013 
1 B 1015 
1 B 1015 
2 B 1016 

有幾件事情需要考慮:有些紙張號是重複的,有些紙張號的(例如,上面列表中缺少1006到1008),某些圖紙編號是連續的,其中一些是重複的,然後與下一個圖紙編號相連(如1010,1010,1010,1011中所示)

我需要生成的結果是三個單元格:總數量,字母的翻譯(如「B」代表「梁」和片材編號的拼接,其讀數如下

QTY Type Sheet# 
48 Beams On sheets 1000 to 1002, 1005, 1009 to 1013, 1015 and 1016 

從「B」到「梁」的翻譯只有一種情況。我在另一張單獨的工作表上列出了所有類型的表格,例如。 B =橫樑,C =立柱,BR =支架,PS =管道支架等。

任何指導將非常感激。

+1

數量可以通過'sumif'實現,但您可能需要vba來休息。如果你不打算做出任何努力,請聘請一個人來完成這項工作。 – findwindow

+0

顯示工作?我有大約兩週的VBA經驗。我的問題是如何使用VBA完成這項任務。我不是要求任何人去做所有的工作。我認爲這個網站的重點是提問?! – FatMunkey

+0

請參閱[如何提問](http://stackoverflow.com/help/how-to-ask)。 – findwindow

回答

0

複製B:C到另一區域(I置於G:H)

數據標籤下使用 「刪除重複」 功能

在F2輸入:=SUMIF(B:B,G2,A:A)

在I2放VLOOKUP公式中拉回B或C或的含義任何

在J2把下面的公式:=IF(G2<>G1,"On sheets " & H2,IF(AND(H2=H1+1,H2=H3-1),J1,IF(H2=H1+1,J1 & " to " & H2,J1 & ", " & H2)))

向下拖動F2,I2和J2。

這是怎麼看的時候我有一些測試數據播放(沒有做VLOOKUP,它不會對我的測試軸承)

QTY TypeSheet# 
48 B 1000 On sheets 1000 
48 B 1001 On sheets 1000 
48 B 1002 On sheets 1000 to 1002 
48 B 1005 On sheets 1000 to 1002, 1005 
48 B 1009 On sheets 1000 to 1002, 1005, 1009 
48 B 1010 On sheets 1000 to 1002, 1005, 1009 
48 B 1011 On sheets 1000 to 1002, 1005, 1009 
48 B 1012 On sheets 1000 to 1002, 1005, 1009 
48 B 1013 On sheets 1000 to 1002, 1005, 1009 to 1013 
48 B 1015 On sheets 1000 to 1002, 1005, 1009 to 1013, 1015 
48 B 1016 On sheets 1000 to 1002, 1005, 1009 to 1013, 1015 to 1016 
20 C 1012 On sheets 1012 
20 C 1013 On sheets 1012 to 1013 
20 C 1015 On sheets 1012 to 1013, 1015 
20 C 1016 On sheets 1012 to 1013, 1015 to 1016 

一旦這樣做,你可以複製和粘貼的值,並且簡單地刪除除每個類型的最後一行以外的所有數據

+0

嘿Dan,感謝您的快速回復!你展示的結果正是我想要做的。然而,我一定是做錯了,因爲相反,我得到了這個:「在工作表221,222,223,224,225,226 ......」我製作了一張測試表,並使用了你所描述的確切列,並複製並粘貼了你的公式。我拍了一個屏幕截圖,但沒有看到在這裏顯示的方法。 – FatMunkey

+0

發佈你正在做的一步一步,我可以幫你。 –

+0

我編輯了上面的評論與更多細節。但這裏更是如此。我做了一張測試表。其中我將數據放在A,B和C列。我將B,C複製到G,H。在F2中輸入SumIf公式並將其複製下來。在I2中輸入公式(Vlookup)並在J2中輸入公式,然後複製下來。結果是「在工作表221,222,223,224,225 ...」 – FatMunkey