这种数据用自定义序列不方便,因为"文字"后面所附的数字是会随时变化的.
建议用公式得到排序结果:
比如原数据在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中文网其他相关文章!