2016-06-22 22 views
0

我們有200.000條獨特的文章,我想用我們的AX數據庫創建一個帶Atlas Global軟件5.1的excel導出。當用戶填寫一個字段(供應商)時,他應該獲得所有獨特的項目組合。每篇文章都有+ - 10個日期。目標是獲取獨特項目的最新日期。 舉例來說:如何過濾供應商和自動採取最新項目?

Art. nr  Date   Vendor 
1000000  22-6-2016  1000 
1000000  02-6-2016  1000 
1000000  03-6-2016  1000 
1000000  06-6-2016  1000 
1000000  03-5-2016  1000 
2000000  09-3-2016  1000 
2000000  08-1-2016  1000 
2000000  05-6-2016  1000 
2000000  19-6-2016  1000 
2000000  03-6-2016  2222 
2000000  05-6-2016  2222 
4000000  01-5-2016  2222 
5410000  03-5-2016  2222 
6356622  03-4-2016  2222 
2552585  03-3-2016  2222 
1551505  03-1-2016  2222 
1451556  3-12-2015  2222 
0510231  3-11-2015  2222 

這裏的所有組合都是唯一的。 當我現在在一家供應商填寫,如1000的結果應該是:

1000000 22-6-2016 1000 
2000000 19-6-2016 1000 

這應該是這個結果。 有沒有人知道我可以如何在Excel 2013中建立這個?

+0

雖然在Excel中這是可能的,但它不會成爲搜索的最佳位置。是否有可能在您的數據庫中執行搜索,並讓它返回每個供應商的最大(日期)excel? sql會像'SELECT vendor,max(date)as maxdate FROM vendortable GROUP BY vendor WHERE vendor = ;' – JNevill

+0

不是,它是針對其他用戶的,它們沒有訪問數據庫...只有到excel文件。 –

回答

0

我認爲解決這個問題最優雅的方法是使用數組公式(也稱爲CSE公式,因爲您必須使用Ctrl + Shift + Enter輸入它,而不僅僅是Enter)。

假設您的數據帶有標題,起始於A1。並假設你用戶輸入一個供應商到單元F6。您可以輸入以下內容細胞G6

=MAX(IF(A2:A19=F6,B2:B19,0)) 

再度輸入時,按下Ctrl + Shift + Enter鍵。它會在公式周圍產生尖括號以表明它是一個數組公式。

POC: Screenshot of excel showing the array formula in use

本質上講,這陣列式是做一個=MaxIf()型式,類似=SumIf=CountIF()。只是=MaxIf()不存在,所以我們必須用數組公式編寫它自己。儘管可能有點慢查詢200000記錄表上的數據。

相關問題