如何在第一次比對找不到時自動再比對第二條件套取符合的值??
- 帖子
- 134
- 主題
- 27
- 精華
- 0
- 積分
- 168
- 點名
- 0
- 作業系統
- WINXP
- 軟體版本
- EXCEL 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 雲林
- 註冊時間
- 2010-10-6
- 最後登錄
- 2018-5-13

|
如何在第一次比對找不到時自動再比對第二條件套取符合的值??
如附件有明細及統計二報表,統計報表列出套取明細中的總數量,但如何在比對不到料號A時可再自動比對料B,並將同客戶及料號的數量加總???
如在明細中有統計工作表上沒有的客戶及料號資料,是否又可設定讓其增加在統計報表最後一列(或此只能使用巨集才能達成???)
Book2.rar (1.89 KB)
|
|
|
|
|
|
|
- 帖子
- 812
- 主題
- 7
- 精華
- 0
- 積分
- 862
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2007
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 台中
- 註冊時間
- 2010-5-13
- 最後登錄
- 2019-10-10

|
2#
發表於 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))) |
|
|
|
|
|
|
- 帖子
- 134
- 主題
- 27
- 精華
- 0
- 積分
- 168
- 點名
- 0
- 作業系統
- WINXP
- 軟體版本
- EXCEL 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 雲林
- 註冊時間
- 2010-10-6
- 最後登錄
- 2018-5-13

|
3#
發表於 2012-5-6 19:53
| 只看該作者
感謝ANGELA版主,解決了小弟的大問題,但請問小弟的第二個問題,如果要將沒有的資料加在統計明細中,是否只能使用巨集達成??? |
|
|
|
|
|
|
- 帖子
- 812
- 主題
- 7
- 精華
- 0
- 積分
- 862
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2007
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 台中
- 註冊時間
- 2010-5-13
- 最後登錄
- 2019-10-10

|
4#
發表於 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抓取 |
|
|
|
|
|
|
- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 138
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-6-8
               
|
5#
發表於 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
複製代碼 |
|
學海無涯_不恥下問
|
|
|
|
|
- 帖子
- 134
- 主題
- 27
- 精華
- 0
- 積分
- 168
- 點名
- 0
- 作業系統
- WINXP
- 軟體版本
- EXCEL 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 雲林
- 註冊時間
- 2010-10-6
- 最後登錄
- 2018-5-13

|
6#
發表於 2012-5-8 00:11
| 只看該作者
感謝ANGELA及Hsieh版主的不吝教導,解決了小弟的大問題,先自行摸索看看,如有問題再行請教^^ |
|
|
|
|
|
|