excel如何实现循环

sheet1中A至O列均有内容,其中均有非空和空值(第一行为表头),想将内容移动至sheet2,但需要以L列进行判断,若sheet1中L2不为空,则整行与sheet1内容... sheet1中A至O列均有内容,其中均有非空和空值(第一行为表头),想将内容移动至sheet2,但需要以L列进行判断,若sheet1中L2不为空,则整行与sheet1内容一致,若L1为空,则判断L2,依次循环,不知道有没有好的方法,求助! 展开
 我来答
匿名用户
2013-03-29
展开全部

sheet2!A1  (或任意单元格)  数组公式:

         =IF(ROW(A1)>COUNTA(Sheet1!$L:$L),"",INDEX(Sheet1!B:B,SMALL(IF(Sheet1!$L$1:$L$999<>"",ROW($L$1:$L$999)),ROW(B1))))

           注意数组公式需要同时按ctrl+shift+enter输入

 

向右向下填充

(如果日期没有正常显示  把格式改一下)

 

来自开元寺欢呼雀跃的蓝宝石
2022-06-27 · TA获得超过739个赞
知道小有建树答主
回答量:615
采纳率:91%
帮助的人:17.1万
展开全部
在Excel中实现循环判断需要看实际的应用环境,大概分以下三种情况:
1、在公式中
在公式中经常用row(1:99)这样去构造一个数列,然后通过对这个数列即可实现一定次数(如本例99次)的循环应用,在公式中加入if函数即可以实现循环判断。
2、在VBA中
在VBA中的循环判断其实就很简单了,主要是结合for...next...或loop...until等循环语句结合if...then...else等判断语句来实现。
3、在Excel新功能Power Query中
在Power Query中构造循环有很多方法,比如使用函数List.Transform或List.Accumulate实现转换或迭代计算,其中可以通过各种方式加入条件。例如List.Transform函数的具体用法如下:
PQ-M及函数:批量处理的利器——列表转换函数(List.Transform)及A股数据批量抓取方法
原创 大海 Excel到PowerBI在前面多个文章里用到List.Transform这个函数,为避免影响这些文章的主体内容,没有专门详细展开讲这个函数的具体内容,本篇补上。List.Transform函数的基本功能是实现一个列表到另一个列表的转换,即输入一个列表,相应地得到一个经某些规则转换后的列表。
先来看一下List.Transform函数的基本语法:
List.Transform(列表 , 转换函数)
语法本身很简单,但是,其中的两个参数都非常灵活,因为:
1、第一个参数是列表,但是,列表里的内容是可以任意的东西,简单到几个数字,复杂到一个个的表,甚至可以是表中带表等任何东西!
2、转换函数可以简单到只返回一个字符,却又可以复杂到引用各种函数写任何功能强大的函数体!
所以,单纯学会这个函数的简单用法不难,但要做到灵活运用,就需要在日后大量的实际案例中磨练。本文从几个例子,先让大家对这个函数有一个比较全面的认识。
例1、给某个列表中的数字都加上1(简单的对应转换)
= List.Transform({30,40,21,33},each _+1)
结果:{31,41,22,34}
说明:转换函数中的下换线“_”表示输入列表中的每一个(当前计算)元素
例2、生成一个带10个元素的列表,每个元素的内容均为“A”(生成的内容可以和输入列表完全没有关系)
= List.Transform({1..10}, each"A")
结果:{A,A,A,A,A,A,A,A,A,A}
例3、将数字1~26转换为字母“A”~“Z”
= List.Transform(
{1..26},
each Character.FromNumber(64+_)
)
上面3个例子,简单体现了List.Transform函数将一个列表转换成另一个列表的过程,但是,这仅仅是它的基本功能,实际上,List.Transform还给了你一个批量操作的机制,让你可以批量操作各种内容!
例4、批量抓取A股全部页面数据
首先回头看一下《单页A股实时信息抓取》操作时生成的代码:

这个代码里,实际上只需要将页面进行批量输入,就可以得到批量的页面信息,我们先删除其他步骤代码,仅保留最关键的两行代码,然后套上List.Transform函数修改为自定义函数(并将两行代码连成一个完整语句)如下:

这样,当我们在pg_lst参数中输入页码列表时,所有页码会被List.Transform函数批量转换为对应的页面数据,如取第1~3页数据:

结果如下:

得到了批量的数据,后续就可以转换到表,然后进行后续的数据处理了(方法与《单页篇》一致,不再赘述)。
现在,我们在回头看《格式化表单数据按可配置映射表转换汇总》的内容,看是否容易理解?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百知网盟
2013-03-29 · TA获得超过2951个赞
知道答主
回答量:395
采纳率:0%
帮助的人:68.5万
展开全部
你说的这个和mod()函数很像
比如mod(1000,25)
就会得到0,循环40次后得数为0
mod(1000,33)
会得到10,循环30次后得数为10
和我刚开始接触excel一样的疑问.当时刚从学校出来,学的是C,觉得excel没有循环语句不好用,呵呵,后来才知道excel其实很强大.
Excel普通函数和公式不能实现for循环.
但是数组公式可以实现
比如
for(i=1,i<=1000,i++)
j=j+i;
求1+2+3+...1000类似这样的循环excel是可以做到的
=sum(row(1:1000)) ctrl+shift+enter 3键组合完成输入
excel数组公式是强大的,你可以研究一下.
追问

你理解的不一样,其实我想表达的意思就像是条件复制(以某一列为基准,跳过空格向下复制,后面的sheet公式设置好就不管了,自动进行),若该列某一单元格不为空,复制该单元格整行,若其为空,看该列下一单元格,不为空复制整行,为空继续向下判断,小范围操作想达成的效果如图

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式