2013-08-22 38 views
0

我經常以「交叉表」方式從其他部門接收數據。將交叉表返回到其原始表格格式

color_|_person1_|_person2_|_person3___| 
red | yes  | yes  | no 
Blue | no  | no  | yes 
Green | no  | yes  | no 

(這只是一個只是一例)

而實際上行(人[1-2-3])處於其他表的ID。

所以應該不是看起來像:

IDPerson__|_Color__|_Activated_| 
person1 | red | yes 
person1 | Blue | yes 
person1 | Green | no 
etc... 

這些的數據都是在Excel和Access 2003, 是有什麼辦法「未交」表自動?

從常規表中製作交叉表很簡單,但是我還沒有找到任何方法來進行oposite。 :/

感謝您的幫助! ^^

回答

1

MS Access沒有一個UNPIVOT功能,將你的數據列轉換爲行,但你可以使用UNION ALL查詢:

SELECT 'person1' as IDPerson, color, person1 as activated 
FROM yourtable 
UNION ALL 
SELECT 'person2' as IDPerson, color, person2 as activated 
FROM yourtable 
UNION ALL 
SELECT 'person3' as IDPerson, color, person3 as activated 
FROM yourtable 

Demo(SQL服務器演示)看到工作版本。

+0

不錯的主意,謝謝......只要我們不需要做50個工會,效果很好^^'(通常是這種情況)----(我會離開這個線程,有些人會帶來一些像自動化工具一樣的東西,如果沒有事情你會回答^^, –

+1

如果你想做一些通用的東西,那麼你可能不得不看看使用VBA以反轉數據。 – Taryn