这个excel表格公式怎么写
发布网友
发布时间:2022-04-22 19:05
我来回答
共7个回答
热心网友
时间:2022-06-09 04:37
我觉得也可以构建一个升序+降序的序列字符串,然后在这个序列中查找值,如果找到就可以看成是顺子,但是还有一些比较特殊的顺序,需要使用其他函数,效果如下:
公式:
B1=IF(IFERROR(FIND(A1,"809012345678901234567898765432109876543210908"),0),"顺子",IF(SUM(1*(ABS(MID(A1,ROW(INDIRECT("1:"&LEN(A1)-2)),1)-MID(A1,ROW(INDIRECT("2:"&LEN(A1)-1)),1))={1,1,2,1,8,9,8,1,9})*(ABS(MID(A1,ROW(INDIRECT("1:"&LEN(A1)-2)),1)-MID(A1,ROW(INDIRECT("3:"&LEN(A1))),1))={1,2,1,8,9,8,1,9,1}))=(LEN(A1)-2),"顺子","非顺子"))
公式为数组函数,公式输入后,需Ctrl+Shift+Enter三键齐按结束,excel自动生成{},我想这个应该基本可以包括了。
热心网友
时间:2022-06-09 05:55
如果原始数据在A1:A100,B1中输入
=IF(MIN(MMULT(FIND(MID(A1,{1,2,3},1),MID("012345678901",ROW($1:$10),3)&1234567890),{1;1;1}))=6,"顺子","非顺子")
下拉,就行了。
介绍一个思路,先人工制造一些辅助片段,=MID("012345678901",ROW($1:$10),3)
=MID("012345678901",{1;2;3;4;5;6;7;8;9;10},3)
{"012";"123";"234";"345";"456";"567";"678";"789";"890";"901"}
凡是连号的,都是三个数字都能在其中一个片段中全部找到的,
=MID(A1,{1,2,3},1)
=MID(201,{1,2,3},1)
={"2","0","1"}
这个就是把每个三位数的每一个都取出来,以A1的201为例子。
FIND({"2","0","1"},{"012";"123";"234";"345";"456";"567";"678";"789";"890";"901"}&1234567890),{1;1;1})
就是用三个数字在每个片段中都位置,得到结果为
=FIND({"2","0","1"},{"012";"123";"234";"345";"456";"567";"678";"789";"890";"901"}&1234567890)
=FIND({"2","0","1"},{"0121234567890";"1231234567890";"2341234567890";"3451234567890";"4561234567890";"5671234567890";"6781234567890";"7891234567890";"8901234567890";"9011234567890"})
后面都拼上1234567890,就是为了不会出现错误值,使每个查找都有个结果,反正如果没有,找到的都至少是4或以上了
={3,1,2;2,13,1;1,13,4;5,13,4;5,13,4;5,13,4;5,13,4;5,13,4;5,3,4;5,2,3}
=MMULT({3,1,2;2,13,1;1,13,4;5,13,4;5,13,4;5,13,4;5,13,4;5,13,4;5,3,4;5,2,3},{1;1;1})
这个就是利用矩阵求和的方法,把分散的每三个数的位置都再求和出来。
{6;16;18;22;22;22;22;22;12;10}
MIN({6;16;18;22;22;22;22;22;12;10})
=6
只有查找位置分别为1、2、3,1+2+3,才会出现6,如果有1个6,就代表它符合其中一个片段,其它的任意结果,都会大于6。
热心网友
时间:2022-06-09 07:30
B1单元格写公式:
=IF(ISERROR(FIND(TEXT(SUM(SMALL(--MID(A1,ROW($A$1:INDEX(A:A,LEN(A1))),1),ROW($A$1:INDEX(A:A,LEN(A1))))*10^(LEN(A1)-ROW($A$1:INDEX(A:A,LEN(A1))))),REPT("0",LEN(A1))),"0123456789089019")),"非顺子","顺子")
然后选定B1单元格后鼠标点击进去上面的公示栏,然后按Ctrl+Shift+Enter/回车三键(按住Ctrl+Shift两键,然后按Enter/回车),直至公式首尾出现{ },然后向下拖动填充B1单元格公式到B列下面的单元格。
热心网友
时间:2022-06-09 09:21
公式不计算,显示的是公式而不是结果,有以下几种情况:
1、公式所在单元格格式为文本。
解决方法:
讲公式所在的单元格格式设置为常规,进入一次编辑状态即可。
2、显示公式功能被开启了,公式选项卡里的显示公式按钮为橙色表示功能开启。
解决方法:点击一下即可。
热心网友
时间:2022-06-09 11:29
在B1单元格写入公式:
=IF(OR($B1=901,$B1=109,$B1=890,$B1="098",AND(ABS(LEFT($B1,1)-MID($B1,2,1))=1,ABS(MID($B1,2,1)-RIGHT($B1))=1,ABS(LEFT($B1)-RIGHT($B1))=2)),"顺子","非顺子")
然后将鼠标放到B1单元格右下角,下拉公式。
热心网友
时间:2022-06-09 13:54
用函数写公式应该较为麻烦,建议使用VBA代码。
热心网友
时间:2022-06-09 16:35
我有方法 就利用excel公式可以达到