2010-06-18 57 views
1

查找表我已經得到了有關我敢肯定的是一個常見的場景心理障礙:查詢在Excel或Access

我有一個CSV文件中的一些數據,我需要做一些很基本的報告從。

的數據基本上是與資源作爲列標題和作爲行標題的表,該表的其餘部分由Y/N標誌,「Y」如果這個人有對資源的訪問「 N「,如果他們不。資源和人員都有獨特的名字。

的樣本數據:

 
     Res1 Res2 Res3 
Bob  Y  Y  N 
Tom  N  N  N 
Jim  Y  N  Y 

表太大,無法簡單地查看它作爲一個整體在Excel(說300個資源,600人),所以我需要一種能夠方便地查詢和顯示(一個簡單的列表沒關係)一個人有權訪問哪些資源,給定該人的姓名。

需要使用這個的人有MS Office,而他們的PC上沒有其他的東西。

所以,問題是:什麼是最好的方式來操縱這些數據來獲得我需要的報告?我的直覺說MS Access會是最好的,但我不知道如何將這些數據自動導入到普通的關係數據庫中。如果不是Access,也許Excel中有一些功能可以幫助我?

回答

3

您應該規範化您的數據。這將使查詢更容易。例如:

table users: 
UserID UserName 
1  Bob 
2  Tim 
3  Jim 

table resources: 
ResourceID ResourceDesc 
1   Printer #1 
2   Fax Machine 
3   Bowling Ball Wax 

table users_resources: 
LinkID UserID ResourceID 
1  1  1 
2  1  2 
3  3  1 
4  3  3 

SELECT ResourceID 
FROM users_resources, users 
WHERE users.UserName="Bob" 
+0

同意規範化是一個好主意,關於如何利用access或excel來做到這一點的任何想法?如果我不需要,我寧可不寫代碼,也不能控制輸入數據的格式。 – Millhouse 2010-06-18 19:01:54

+0

開始的一個好地方是使用Excel來轉移數據(參見http://superuser.com/questions/78439/is-it-possible-to-unpivot-or-reverse-pivot-in-excel)。然後它將以可導入關係數據庫的列表格式進行優化。 – VeeArr 2010-06-18 19:13:07

+1

您可以在Access中使用各種查詢。爲了扁平化表,UNION查詢最好:'SELECT User,Res1,「Res1」As Res FROM tbl UNION ALL SELECT User,Res2,「Res2」As Res FROM tbl ...' – Fionnuala 2010-06-18 19:24:12