2012-04-05 73 views
1

我有一些數據是這樣構成的表格:如何使用函數在Excel中編寫類似查詢的數據庫?

existing table

我有我的電子表格的另一個標籤,讓我消除任何重複的類別條目,並要連接的數據看起來像這樣:

new table

我需要使用功能和創建此不是宏或Visual Basic。我已經編寫了這個函數來消除任何重複的類別條目,現在我需要弄清楚如何獲取這些獨特的類別並在其後面追加數據。有任何想法嗎?

+0

編輯嵌入圖像。這樣,如果圖像從Picasa中取出,問題不會過時。 – 2012-04-05 04:53:52

+0

我認爲需要寫*** *** MACRO *** – 2012-04-05 04:54:52

+0

[Excel函數可以在工作表數據上做類似SQL的查詢?](http://stackoverflow.com/questions/8756802/excel-function -to-make-sql-like-queries-on-worksheet-data) – 2012-04-05 05:42:31

回答

1

假設第一張圖片來自Sheet1,第二張圖片來自Sheet2,這裏有一個辦法。您需要至少將一個計算列添加到Sheet1,並且可以將至少兩個計算行添加到Sheet2

  1. 唯一標識Sheet1上的每一行。使用公式=B3&COUNTIF($B$3:B3,B3)A3中添加新列A並填寫。您將在A3中有first1,first2,A4等等。
  2. 識別Sheet2上的每個列塊。在B6中添加新行6並使用公式=COUNTIF($B$2:B2,B2)填充。值將是1,1,1,2,2,2,3,3,3。如果你喜歡,你可以手動輸入它們,但它不會輕鬆擴展。
  3. 計算出Sheet1中每個數據項的列,並將其放入Sheet2的列中。使用公式=MATCH(B2,Sheet1!$A$2:$E$2,0)添加一個新行7Sheet2並填充。值將是3,4,5,3,4,5,3,4,5。我們現在知道,對於Sheet2中的每個單元格,我們有哪個類別的實例以及數據變量來自哪個列。
  4. 使用VLOOKUP找到first1並返回數據表中的數據列3。在Sheet2上,將單元格B3設置爲=VLOOKUP($A3&B$6,Sheet1!$A$2:$E$8,B$7,FALSE)並填充並填充。
  5. 您將有多個#N/A錯誤(例如,單元格E4)。如果你有一個更新版本的Excel,你可以使用IFERROR()來逃避這個;否則,使用=IF(ISNULL(<formula>), "", <formula>)其中<formula>是在步驟式4

總結:

  • 在源中的每個行創建一個唯一的,連續的,可計算的行ID。
  • 確定目標中每列使用該序列的哪個實例。這附加到類別的末尾以確定上一步中形成的行ID。
  • 確定哪個列包含目標中每列的數據。
  • 使用計算的行ID查找該行並查找該數據項的相關列。
  • 適當地設置結果的格式。
相關問題