Board logo

標題: [發問] 兩階段條件符合後再進行計算 [打印本頁]

作者: Changbanana    時間: 2016-9-14 14:48     標題: 兩階段條件符合後再進行計算

煩請各位高手~
在工作表1
[attach]25244[/attach]
與工作表二
[attach]25247[/attach]

第一步驟﹔
  先在工作表一的E欄(表頭 sys.date)中和工作表二的E欄(表頭 Sdate)比對
         發現日期相同的時候,進行第二步驟
第二步驟﹔
         再比對工作表一的A欄(表頭 NO.)中和工作表二的A欄(表頭 number)
         發現單號相同的時候,進行第三步驟
第三步驟﹔
        把工作表一的D欄(表頭 cash)中與工作表二的D欄(表頭 fee)的值相減
        
        也就是說第一步驟和第二步驟都符合條件時才進行第三步驟
        例如﹔[attach]25246[/attach]
                     1. 先在工作表一的E2(時間2016/8/1)中和工作表二的E欄(2016/8/1)比對,發現有兩筆資料
                     2. 再比對工作表一的A2(單號10001)中和工作表二的A欄(發現有10001)
                     3. 最後工作表一的D2(1200)與工作表二的D欄(200)的值相減   SHOW出1000

優先希望能直接在工作表一的D欄上計算
若不行,第二考慮再增加一欄位去計算
       有試著寫函數的方式去做,但寫了兩天還是沒有成功@@
      我寫=IF(AND(AND(E2,工作表2!E:E),AND(工作表1!A2,工作表2!A:A)),工作表1!D2-工作表2!D:D,"")
      得出的結果是錯的
[attach]25248[/attach]

~~若能用VBA解決也行

麻煩各位高手老師了!!

附件==>[attach]25249[/attach]
作者: rouber590324    時間: 2016-9-14 15:06

dear  sir *-
1.工作表二 空白 F欄加入 =A2&E2後往下拉 (若F欄非空白.自行取空白欄)
2.工作表一 空白 H欄加入 =IF(ISERROR(INDIRECT("Sheet2!D"&MATCH(A2&E2,Sheet2!F:F,0))),"",D2-INDIRECT("Sheet2!D"&MATCH(A2&E2,Sheet2!F:F,0)))後下拉即可.
作者: Changbanana    時間: 2016-9-14 16:11

回復 2# rouber590324

謝謝您~~~
這樣key值變為A2&E2了
好聰明的方式
  
  若改為vba您會嗎?
作者: ML089    時間: 2016-9-15 07:29

H2 =D2-SUMIFS(工作表2!D:D,工作表2!A:A,A2,工作表2!E:E,E2)
下拉
作者: ketrddem    時間: 2016-9-15 22:33

不確定對不對,請插入模組後測試一下

Dim LostRow As Integer
LostRow=sheets("工作表1").cells(rows.count,1).end(xlup).row
For i = 2 to LostRow
If sheets("工作表1").cells(i,5)=sheets("工作表2").cells(i,5) and sheets("工作表1").cells(i,1)=sheets("工作表2").cells(i,1) then
sheets("工作表1").cells(i,7)=sheets("工作表1").cells(i,4)-sheets("工作表2").cells(i,4)
end if
next
作者: Changbanana    時間: 2016-10-4 16:48

回復 5# ketrddem


大大你這個方法沒有跑出結果

我先暫時用函數解決了~謝謝您
作者: Changbanana    時間: 2016-10-4 16:51

回復 4# ML089


  您這方法滿好用的
  
  想再請教一下
  若在工作表一計算時只選工作表二奇數列做計算
  而偶數列忽略它不要計算
  這樣有函數可以使用嗎?
作者: ML089    時間: 2016-10-5 16:02

回復 7# Changbanana
若在工作表一計算時只選工作表二奇數列做計算,而偶數列忽略它不要計算。

1.
工作表二,增加輔助欄公式,奇數列=1,偶數列=0。
F2 =MOD(ROW(),2)
下拉

2.
H2 =D2-SUMIFS(工作表2!D:D,工作表2!A:A,A2,工作表2!E:E,E2)
改為 (最後一數,奇數列=1,偶數列=0)
H2 =D2-SUMIFS(工作表2!D:D,工作表2!A:A,A2,工作表2!E:E,E2,工作表2!F:F,1)
下拉
作者: Changbanana    時間: 2016-10-17 11:44

回復 8# ML089


    謝謝你~成功達陣^^




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