2017-08-31 184 views
1

我使用PHPExcel將一些數據導出到Excel。在Excel中排序字母數字值

我最初根據需要對PHP中的字母數字字符列表進行排序(請參閱下面的左側)。

但是當導出到Excel我們的客戶希望使用Excel的排序對數據進行排序,這會導致下方觀察到右側(按字母順序,A-Z)

排序有什麼辦法可以解決此問題?也許使用公式來顯示單元格中的一個值,但給單元格一個不同的值(用於排序)?

還是自定義單元格格式?

作爲最後的手段,我計劃在開始引入ID列,這樣一個總是可以通過排序ID列返回到初始排序,但如果可能的話,我寧願不使用此解決方案。

Initial Sort  Excel Sort 
2586    2586 
2587    2587 
2587-1    2590 
2587-2    2592 
2590    2595 
2590-1    2587-1 
2590-2    2587-2 
2590-3    2590-1 
2590-4    2590-10 
2590-5    2590-11 
2590-6    2590-2 
2590-7    2590-3 
2590-8    2590-4 
2590-9    2590-5 
2590-10    2590-6 
2590-11    2590-7 
2592    2590-8 
2595    2590-9 
+0

當您導入,導入文本。 Excel在排序時首先放入數字,然後確定排序時他們不選擇按數值排序的數字看起來像數字。 –

+0

在右側似乎是按字母順序排序。 – Lexib0y

+0

剛剛定義一個自動篩選器範圍,那麼用戶在標題行中有工具欄來自我排序 –

回答

0

如果放在每行前面的撇號它排序如下:

2586 
2587 
2587-1 
2587-2 
2590 
2590-1 
2590-10 
2590-11 
2590-2 
2590-3 
2590-4 
2590-5 
2590-6 
2590-7 
2590-8 
2590-9 
2592 
2595 

這是你想要的,對不對?

+0

不,我想要它,因爲它最初被排序(如我在左邊的列表中看到的那樣)。補充說明這個問題。 – Danc

0

Excel將根據自己的規則進行排序,並且格式不會更改。您可以在ID列以外的不同列上排序;這些列可以隱藏,按鈕觸發排序;或者其他方式讓您的最終用戶更容易。

下面是做事的一種方式的示例:

您可以設置兩個輔助列,代表着ID爲號碼的左側和右側部分。

隨着B欄您的ID:

C2: =--(LEFT(B2,FIND("-",B2&"-")-1)) 
D2: =IFERROR(--MID(B2,FIND("-",B2)+1,99),0) 

,並填寫了下來。

由於其中的Excel排序空白的方式,你需要放置一個零在第二部分的領域,這可能是空白

然後選擇表,和排序列C,然後在列d 。

完成後,刪除或隱藏列C:d

之前排序

enter image description here

Sort對話框

enter image description here

後排序

enter image description here