2014-06-29 61 views
0

我是新來的excel。我有一個Excel工作表類似於下表(日期,身份證)根據excel中的其他列提取列中的值

Date  Id 
02.06.2014 314 
      315 
      316 
      317 
      318 
03.06.2014 326 
      327 
      328 
      329 
04.06.2014 347 
      348 
05.06.2014 356 
      357 
      358 
      359 

我需要提取開始每天ID和結束ID和我得到的應該是如下表(日期一樣,起始ID,結束ID)

Date  Start id End id 
02.06.2014 314  318 
03.06.2014 326  329 
04.06.2014 347  348 
05.06.2014 356  359 

該表太大,無法手動完成。有沒有什麼辦法在excel中自動化這個過程。如果是這樣的請幫助

回答

1

這個答案很實用,試圖保持它相當簡單,但允許您按照您的要求自動化過程。它需要一點點手動操作,並且只有在列id中的值是唯一的時纔有效。

Screenshot to guide the answer

的第一步是冷凝塔A以除去空單元。這可以通過所謂的數組公式在網絡上的幾個地方解釋,例如here。在這個例子中片材中,我使用

=INDEX($A$2:$A$16, SMALL(IF(ISBLANK($A$2:$A$16), "", ROW($A$2:$A$16)-MIN(ROW($A$2:$A$16))+1), ROW(A1))) 

用於細胞D2,然後通過按下Ctrl鍵++輸入使其數組公式證實這點。公式將被大括號包圍。單元格D2現在應該包含第一個日期值。現在抓住D2的右下角並將其拉下以填充其他值。如果你拉得夠遠,你將擁有所有的價值。之後,您將獲得#NUM!。如果這是一個問題,請查看以前的鏈接,瞭解如何通過使用IFERROR()函數來避免該問題。

接着爲E2下式:

=LOOKUP($D2,$A$2:$A$16,$B$2:$B$16) 

再次,拉下右下角以填充其他字段中E。請注意,此公式僅適用於列B中的值是唯一的。如果情況並非如此,則需要更復雜的公式。

最後,填充柱F,在細胞F2使用

=INDEX($B$2:$B$16,MATCH($E3,$B$2:$B$16)-1) 

向下拉。請注意,此公式不適用於F列中的最後一個值。最簡單的方法是手動填寫該值,或者如果您不喜歡該值,請在Web上搜索公式以找到B列中的最後一個值。

+0

超棒的男人....工作得很好.. :)非常感謝你... – PrathapB

1

我的解決方案沒有任何公式將是這樣的...但你需要設置像下面的oroginal數據... 這是重複日期標籤 ..(這是更容易做清理鍛鍊)...例如在單元格A3中鍵入「= A2」,然後選擇範圍A3到A16或END。例如,按Ctrl + G ..單擊特殊...選擇空白...將選擇所有空白單元...和做一個Ctrl + V來粘貼公式......它會根據前一行自動填入每一行的日期......

enter image description here

Date ID 
02/06/2014 314 
02/06/2014 315 
02/06/2014 316 
02/06/2014 317 
02/06/2014 318 
03/06/2014 326 
03/06/2014 327 
03/06/2014 328 
03/06/2014 329 
04/06/2014 347 
04/06/2014 348 
05/06/2014 356 
05/06/2014 357 
05/06/2014 358 
05/06/2014 359 

然後做樞軸表..與行日期..並在值ID的最小值和最大值ID ..實施例如下面..

enter image description here

請讓我知道這是否有助於你..在評論中。

+0

這一個更清潔我的要求。謝謝。 – PrathapB

相關問題