標題:
如何在第一次比對找不到時自動再比對第二條件套取符合的值??
[打印本頁]
作者:
p6703
時間:
2012-5-6 12:11
標題:
如何在第一次比對找不到時自動再比對第二條件套取符合的值??
如附件有明細及統計二報表,統計報表列出套取明細中的總數量,但如何在比對不到料號A時可再自動比對料B,並將同客戶及料號的數量加總???
如在明細中有統計工作表上沒有的客戶及料號資料,是否又可設定讓其增加在統計報表最後一列(或此只能使用巨集才能達成???)
[attach]10823[/attach]
作者:
ANGELA
時間:
2012-5-6 18:28
=IF(SUMPRODUCT((明細!$A$2:$A$23=A2)*(明細!$B$2:$B$23=B2)*(明細!$D$2:$D$23)),SUMPRODUCT((明細!$A$2:$A$23=A2)*(明細!$B$2:$B$23=B2)*(明細!$D$2:$D$23)),SUMPRODUCT((明細!$A$2:$A$23=A2)*(明細!$C$2:$C$23=B2)*(明細!$D$2:$D$23)))
作者:
p6703
時間:
2012-5-6 19:53
感謝ANGELA版主,解決了小弟的大問題,但請問小弟的第二個問題,如果要將沒有的資料加在統計明細中,是否只能使用巨集達成???
作者:
ANGELA
時間:
2012-5-6 23:58
A2=INDEX(明細!$A$1:$A$1000,SMALL(IF(明細!$A$2:$A$100<>"",ROW($A$2:$A$100),999),ROW(A1)))&"" 陣列公式
料號是要a料號還是b料號?可用VLOOKUP抓取
作者:
Hsieh
時間:
2012-5-7 09:34
回復
3#
p6703
如果有了配對清單
C2=SUMPRODUCT((IF(COUNTIF(明細!$B$2:$B$23,統計!$B2),明細!$B$2:$B$23,明細!$C$2:$C$23)=$B2)*(明細!$A$2:$A$23=統計!$A2)*(明細!$D$2:$D$23))
但是公式取得所有配對清單會很麻煩,且當數量多時可能會很慢
直接使用VBA執行會比較恰當
Sub ex()
Set d = CreateObject("Scripting.Dictionary")
With Sheets("明細")
For Each a In .Range(.[A2], .[A2].End(xlDown))
For Each b In a.Offset(, 1).Resize(, 2)
If IsEmpty(d(a & b)) Then d(a & b) = Array(a, b, a.Offset(, 3))
Next
Next
End With
With Sheets("統計")
.UsedRange.Offset(1) = ""
.[A2].Resize(d.Count, 3) = Application.Transpose(Application.Transpose(d.items))
End With
End Sub
複製代碼
作者:
p6703
時間:
2012-5-8 00:11
感謝ANGELA及Hsieh版主的不吝教導,解決了小弟的大問題,先自行摸索看看,如有問題再行請教^^
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)