
Excel中的排序問題
這種數據用自定義序列不方便,因為"文字"后面所附的數字是會隨時變化的.
建議用公式得到排序結果:
比如原數據在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中數據怎么排序
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
并下拉填充公式,計算結果也與上面的方法完全相同。
C語言結構體排序問題
由于你只是交換字符串,所以修改如下,請檢驗。
用strcpy(s1,s2)進行復制字符串,不能直接s1=s2。
#include
#include
typedefstruct
{
charnumber[10];//書號
charname[50];//書名
charauthor[20];//作者
charpublish[50];//出版社
chartime[20];//出版時間
floatprice;//單價
}mbook;
typedefstruct
{
intcount;//書的本數
mbookbook[10];//最大可有書的數量
}mlibrary;
mlibrarylibrary,t;
main()
{voidsort_by_price(void);
sort_by_price();
}
voidsort_by_price(void)
{
inti,j,k;
charsn[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中正確排序數據的詳細內容,!

