2013-10-17 34 views
0

我得到了創建的範圍列表。我想要做的是按照它們所指的單元格號碼升序排列它們。我試着使用排序選項,但所有我想出了是創造我自己的排序列表...範圍在Excel中排序文本和數字

列表:

Column 1 Column 2 
pp2dni2007 =szkolenia!$B$2:$E$33 
pp2dni2010 =szkolenia!$B$273:$E$500 
pp3dni2008 =szkolenia!$B$34:$E$83 
pp3dni2009 =szkolenia!$B$84:$E$272 

所需的輸出:

Column 1 Column 2 
pp2dni2007 =szkolenia!$B$2:$E$33 
pp3dni2008 =szkolenia!$B$34:$E$83 
pp3dni2009 =szkolenia!$B$84:$E$272 
pp2dni2010 =szkolenia!$B$273:$E$500 
+0

哦,我的錯誤,誤讀你的問題。我看到了排序並查看了您的數據。但爲什麼你需要使用參考單元號進行排序?你明確地按照邏輯順序使用它們? '2007 = 2-33,2008 = 34-83,2009 = 84-272,2010 = 273-500'因此,無論哪種方式,如果您在'Column1'上升序/降序排序,您都會得到相同的結果。 – CustomX

+0

我認爲它不會沒有VBA。 –

+0

@ t.thielemans我需要對它們進行排序,因爲當我單擊「在公式中使用 - >粘貼 - >粘貼列表」時,它沒有排序+我給你舉了一個例子,它並不總是那麼符合邏輯。 – lowak

回答

1

當我讀到loannis解決方案,我想出了另一種解決我的問題;) 忘了告訴:第2列數據ISN」當涉及到數據時,它會導入,但它是如何排序的暗示。

好了,所以它看起來像這樣:

Column 1 Column 2 
pp2dni2007 =szkolenia!$B$2:$E$33 
pp2dni2010 =szkolenia!$B$273:$E$500 
pp3dni2008 =szkolenia!$B$34:$E$83 
pp3dni2009 =szkolenia!$B$84:$E$272 

我們得到這個數據,那麼什麼是痛在這裏是這個硬數據「= szkoleni ...」。

要整理它,所有需要的是擺脫它。
使用查找&替換我刪除「= szkolenia!$ B $」部分,然後再次使用它,我刪除它的其餘部分「:*」。

現在列看起來像:

Column 1 Column 2 
pp2dni2007 2 
pp2dni2010 273 
pp3dni2008 34 
pp3dni2009 84 

現在,它只是簡單的排序,瞧的情況下!它可以很容易地通過宏使用;)

感謝loannis,你是我的靈感;)

+0

嗨Iowak,謝謝!其實,我確實嘗試過這種方法,但拒絕了它,因爲我認爲我們無法觸摸第2列。很高興我幫助了! – Ioannis

3

這是一種方法(雖然有點難看)。 假設一成立這樣的:

enter image description here

第1步:

將光標移動到C1並進入公式 - >定義名稱。定義以下名稱: enter image description here

我們需要使用此函數來獲取列B中每個單元格的公式,因爲我們將根據此公式進行排序。

步驟2:

在細胞C1進入並充滿向下:

=LEFT(SUBSTITUTE(GET_FORMULA,"=szkolenia!R",""),FIND("C",SUBSTITUTE(GET_FORMULA,"=szkolenia!R",""))-1) 

細分爲方便起見:

=LEFT(SUBSTITUTE(GET_FORMULA,"=szkolenia!R",""), 
    FIND("C",SUBSTITUTE(GET_FORMULA,"=szkolenia!R",""))-1) 

這基本上返回引用的行數存儲在GET_FORMULA中。

第3步:

選擇列ABC和排序基於C柱:

enter image description here

結果:

enter image description here

或用公式:

enter image description here

注:

  • 的文件必須保存爲以使GET_FORMULA名工作啓用宏。
  • 我真的不喜歡幫手列(如上面的列C),但在這種情況下,事情會過度複雜,沒有它。

我希望這可以幫助,但它確實是一個醜陋的解決方案..

+1

哇,你努力工作。當我讀你的解決方案時,我帶着另一個 - 我認爲更容易一個;) – lowak