這種資料用自訂序列不方便,因為"文字"後面所附的數字是會隨時變化的.
建議用公式得到排序結果:
例如原始資料在A1:A6,你在後面空白列輸入公式:
="文字"&SMALL(--TRIM(MID($A$1:$A$6,3,10)),ROW())
將公式向下複製到對應行就可以了.
如果有其他欄位資料需要一起排序,可用VLOOKUP函數解決.
補充回答:
根據你的情況,你將需要作為排序關鍵字的單元格所在列的單元格格式設為對應的"自定義"類型就可以正常排序了.
將c1,c100,c250,c2,c3,c4這一列的資料的儲存格格式設為:
"c"0
#將best1,best5,best6,best11,best100這一列的資料的儲存格格式設為:
"best"0
#這樣你在輸入時只要輸入後面所跟的數字即可.
並且這一列可以按你的要進行排序.
excel中資料排序有資料重排和序數計算(類似成績統計中的名次)兩類。
一、資料重排
1、一般排序 (點選Excel「資料」選單下的「排序」指令)
例如將學生花名冊按「姓名」的筆劃排序,可以使用以下方法:
選取排序關鍵字所在列(或行)的首個儲存格,點選Excel「資料」功能表下的「排序」指令,再按一下其中的「選項」按鈕。選取“排序選項”對話方塊“方法”下的“筆畫排序”,然後根據資料排列方向選擇“按行排序”或“按列排序”,並在“確定”後回到“排序”對話方塊。如果您的資料帶有標題行,則應選取“有標題行”(反之不選),然後開啟“主要關鍵字”下拉列表,選擇其中的“姓名”,選取排序方式(“升序”或“降序”)後“確定”,表中的所有數據就會據此重新排列。
2、自訂排序
如果您要Excel按照「校長」、「副校長」、「主任」和「教師」的特定順序重排工作表數據,這類問題可以用定義排序規則的方法解決:
先點選Excel「工具」功能表下的「選項」指令,開啟「選項」對話方塊中的「自訂序列」標籤。選取左邊“自訂序列”下的“新序列”,遊標就會在右邊的“輸入序列”框內閃動,您就可以輸入“校長”、“副校長”、“主任”和“教師”自定義序列了,輸入的每個序列之間要用英文逗號分隔,或是每輸入一個序列就敲回車。如果序列已經存在於工作表中,可以選取序列所在的儲存格區域按一下“匯入”,這些序列就會自動加入“輸入序列”方塊。無論採用上述哪一種方法,請按一下「新增」按鈕即可將序列放入「自訂序列」中備用。
開啟「排序選項」對話方塊中的「自訂排序次序」下拉列表,選取前面定義的排序規則,其他選項保持不動。回到“排序”對話框後根據需要選擇“升序”或“降序”,“確定”後即可完成資料的自訂排序。
三、數值排序
1.RANK函數
RANK函數是Excel計算序數的主要工具,它的語法為:RANK (number,ref,order),其中number為參與計算的數字或含有數字的單元格,ref是對參與計算的數字單元格區域的絕對引用,order是用來說明排序方式的數字(如果order為零或省略,則以降序方式給出結果,反之按升序方式)。
例如中E2、E3、E4單元格存放學生總成績,計算學生總分排名的方法是: 在F2單元格內輸入公式“=RANK(E2,$E$2:$E$4)”,並下拉填充公式。若在儲存格中輸入的公式為“=RANK(E2,$E$2:$E$4,1)”,則計算出的序數以升序方式排列。
2.COUNTIF函數
COUNTIF函數可以統計某一區域中符合條件的單元格數目,它的語法為COUNTIF
(range,criteria)。其中range為參與統計的單元格區域,criteria是以數字、表達
式或文字形式定義的條件。其中數字可以直接寫入,表達式和文字必須加引號。
例如,單元格內輸入的公式為=COUNTIF($E$2:$E$4, ">"&E2) 1
並下拉填入公式,計算結果也與上面的方法完全相同。
由於你只是交換字串,所以修改如下,請檢驗。
用strcpy(s1,s2)進行複製字串,不能直接s1=s2。
#include
#include
typedef struct
{
char number[10];//書號
char name[50];//書名
char author[20];//作者
char publish[50];//出版社
char time[20];//出版時間
float price;//單價
}mbook;
typedef struct
{
int count;//書的本數
mbook book[10];//最大可有書的數量
}mlibrary;
mlibrary library,t;
main()
{ void sort_by_price(void);
sort_by_price();
}
void sort_by_price(void) /*定義依價格排序函數*/
{
int i,j,k;
char sn[10];
for(i=0;i{
k=i;
for(j=i 1;jif(library.book[j].pricek=j;
if(k!=i)
{
strcpy(sn,library.book[k].number);
strcpy(library.book[k].number,library.book[i].number);
strcpy(library.book[i].number,sn);
}
}
}
以上是如何在 Excel 中正確排序數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!