English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

有一資料表 如下
ID ch1 Q ch2 Q ch3 Q ch4 Q ........... ch(m) Q
1257 A 500 B 8 A 92 W 5 .........
1586 W 20 F 25 K 800 R 4 ..........
3584 aw 8547 r 9 K 25 r 258 ........
..
..
..

每一人可選1至m項物品 ch1 to ch(m)
每人至少選1項 最多m項 且可能重複選
每樣物品均能有Q個 可能為0
請計算 共被選了幾項物品 每項總計幾個 以利採購買入所需
於新工作表列出結果
格式 如下
物品名稱 數量
A xxxx
B xxxx
....
....
....

請使用巨集 與 非巨集方法 解答

感恩

2006-11-21 03:59:48 · 4 個解答 · 發問者 son 6 in 電腦與網際網路 軟體

4 個解答

巨集如下,在資料表中執行,但必須符合以下條件:
1.資料表從A欄開始,A1是ID,B1以後為每2欄為一組的:物品及數量(如題所示)
2.除題目所示之ID,物品及數量以外,沒有其他的資料.
3.結果會產生一個新工作表,命名為"統計".
Sub Macro1()
Range("A:B").Insert
Range("D1:E1").Copy Destination:=Range("A1:B1")
Range("B2") = "=COUNTA(C:C)"
NR = Range("B2")
Range("B2") = "=COUNTA(1:1)"
NC = Range("B2")
NE = ActiveSheet.Name
For N = 6 To NC Step 2
X = (NR - 1) * (N - 4) / 2 + 2
Range(Cells(2, N), Cells(2, N).Offset(NR - 1, 1)).Copy
Range("D" & X).PasteSpecial Paste:=xlPasteValues
Next N
Range("D:E").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("A1"), _
CopyToRange:=Range("A1"), Unique:=True
Range("B2") = "=COUNTA(A:A)"
M = Range("B2")
Range("B2") = "=SUMIF(D:D,A2,E:E)"
If M > 2 Then Range("B2").Copy Destination:=Range("B3:B" & M)
Range("B:B").Copy
Range("B:B").PasteSpecial Paste:=xlPasteValues
Sheets.Add.Name = "統計"
Sheets(NE).Range("A:B").Cut Destination:=Range("統計!A:B")
Sheets(NE).Range("A:B").Delete
Sheets(NE).Range(NR + 1 & ":5000").Delete Shift:=xlUp
Range("統計!A1").Select
End Sub

2006-11-21 13:08:11 · answer #1 · answered by linda 4 · 0 0

如果你很確定自己很想結婚
婚友社的確是一個有效率的管道
年紀越大壓力越大
以前我去婚友社時
年輕的女生機會總是比較多
時間總是不站在女生這邊的
所以如果你想婚的念頭已經確定
就去找一家評價好一點的婚友社!
行動吧!
這是我之前參加的婚友社我覺得不錯

或搜尋"紅娘李姐"

不過還是建議你自己去諮詢過看是否適合你!

2014-01-24 09:53:17 · answer #2 · answered by ? 2 · 0 0

to:Bill Yen
看不懂
COPY A2 TO A2..B20 是啥意思
COPY C2 TO C3..C20 是啥意思
COPY D2 TO D2..BZ20 是啥意思 為何到BZ20
D欄未定義 D2計算結果為何

2006-11-24 08:59:12 補充:
還有非巨集的方法嗎

2006-11-24 03:51:23 · answer #3 · answered by son 6 · 0 0

給一個非巨集,求出所有挑選數量
設資料表在Sheet1
請在任一工作表如下輸入
A1=物品名稱
B1=庫存數量
C1=挑選數量
a2=INDEX(Sheet1!B$1:AI$1,1,ROW()*2-3)
COPY A2 TO A2..B20
c2=SUM(D2:BZ2)
COPY C2 TO C3..C20
d2=SUMIF(Sheet1!B$2:B$1000,$A2,Sheet1!C$2:C$1000)
COPY D2 TO D2..BZ20

2006-11-21 17:24:37 · answer #4 · answered by Bill Yen 5 · 0 0

fedest.com, questions and answers