2015-12-29 77 views
0

我有一個excel文件2張單工作,第一個是:合併多個Excel與選項

表:人

Code date  start end 
2301 12/08/1993 08:02 08:17 
4221 12/08/1993 09:04 09:25 
2312 12/08/1993 10:02 10:28 
1284 19/09/1994 11:02 11:21 
2312 19/09/1994 15:57 16:20 
1284 23/06/1995 17:12 17:35 
2312 22/06/1996 13:14 13:32 
4221 22/06/1996 15:53 16:13 
4221 05/05/1999 08:06 08:22 
2418 05/05/1999 08:10 08:33 
2301 05/05/1999 09:12 09:37 
2301 05/05/1999 09:28 10:28 
2301 05/05/1999 13:28 13:38 

是公司的人名單和他們中的任何人都被徽章[行Code]識別,我希望將code的數據合併到人物的服裝表上,例如,對於具有多個徽章的人2301,他擁有他自己的名爲B2301的工作表,所以根據第一張表格「Person」,我希望導入一個像這樣的人的數據數這個人:

表B2301

date  Period(min) 
12/08/1987 12 
....  ... 

所以週期將從startend行來計算。

我試圖用這個公式,但它不是爲我工作:

=IFERROR(INDEX(Sheet1!A$2:A$14,SMALL(IF(Sheet1!$A$2:$A$14=INT(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))),ROW(Sheet1!A$2:A$14)-ROW(Sheet1!A$2)+1),ROWS(Sheet1!A$2:A2))),"")

任何想法?

+0

該公式出了什麼問題?怎麼了?另外,如果您不想尋找VBA解決方案,我會刪除excel-vba標籤。如果你正在尋找一個VBA解決方案,我會遵循PKatona的建議。 – OpiesDad

回答

0

這需要您進行大量的研究。你需要:

  1. 創建VBA宏
  2. 定義變量,並創建一個循環來看看你的主片。
  3. 根據代碼創建工作表名稱。
  4. 檢查工作表是否已經存在,如果沒有,則創建它。
  5. 將第一個工作表中的值複製到「代碼」工作表。
  6. 處理完所有值後,遍歷每個工作表,循環查看您的值並計算您的期間。

這不是一個微不足道的代碼量。對這6個項目進行研究並編寫代碼。當你有這個,顯示它,我們可以給你更多的方向。

+0

如果我可以做到這一點,我不會在這裏問... – toto

+0

好吧,聽起來好像你想有人爲你寫你的代碼,這不是本網站的意圖。這裏的期望是你寫了一些代碼並需要進一步的指導。 我告訴你什麼,我會開始你。我會全天檢查。你向我展示你的進步,我會進一步幫助你。 1.在Person excel工作簿上,單擊「查看」選項卡,然後單擊最右側的「宏」圖標。 2.爲「宏名稱」鍵入「ProcessBadges」,然後單擊「創建」。 當你這樣做的時候讓我知道。我會稍後再回來看看。 – PKatona

0

要填充的日期,在A2放:

=IFERROR(INDEX(Sheet1!$B$2:$B$14,MATCH(SMALL(IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,Sheet1!$B$2:$B$14),ROW()-1),IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,Sheet1!$B$2:$B$14),0)),"") 

要填充期間把這個在B2:

=IFERROR(TEXT(INDEX(Sheet1!$D$2:$D$14,MATCH(SMALL(IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,IF(Sheet1!$B$2:$B$14=A2,Sheet1!$C$2:$C$14)),COUNTIF($A$1:$A2,A2)),IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,IF(Sheet1!$B$2:$B$14=A2,Sheet1!$C$2:$C$14)),0))-INDEX(Sheet1!$C$2:$C$14,MATCH(SMALL(IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,IF(Sheet1!$B$2:$B$14=A2,Sheet1!$C$2:$C$14)),COUNTIF($A$1:$A2,A2)),IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,IF(Sheet1!$B$2:$B$14=A2,Sheet1!$C$2:$C$14)),0)),"[m]"),"") 

兩者都是數組公式,需要用Ctrl-按住Shift確認輸入。然後複製到所需的行。

enter image description here

+0

它給了我這個錯誤,即使我做了很多修改'我們發現這個公式的問題嘗試點擊插入功能',也許我輸入了錯誤的東西,你能否請你在真實文件中嘗試你的例子,請確保工作正常嗎? – toto

+0

我確實把它放在一個真實的文件中,因此是圖片。這個對我有用。我沒有拍照,也沒有把這些數字放進去。上面的圖片是我真實的文件。 –