威言威语
我愿像茶,苦涩留心,清香予人。
威言威语
当前位置: 首页 > 软件 > 正文

Excel中使用IFERROR提取指定内容

早年PJBlog的回复是嵌在评论里的,现在想分离用户评论和博主回复。想用Excel来搞定,核心就是IFERROR函数配合FIND、MID这些文本函数。比如先用公式把 blockquote 前后的内容分开,抓到用户评论和博主回复。再用个公式精准提取回复的纯文本,把那些多余的HTML标签甩掉。
Excel中使用IFERROR提取指定内容

最近处理博客评论中留存的历史问题,早年使用PJBlog,当时的评论没有对应回复逻辑,后来的版本中虽然加入了回复功能,但是是在原评论中插入一段特殊标记的内容,实际上数据库里面是一条评论内容。

转到WordPress之后,它的评论回复是独立的。于是想着将原来回复的评论单独抽出来变为独立回复的评论。幸好原来有一些特殊标记,可以相对方便的分离出来内容。

这个时候就用到IFERROR函数了,它是一个自定义公式错误时的提示函数,不过这里我们可以用来查找我们想要的内容。

举例:下面是评论内容字段中存储的数据。


我是最初的用户发表的评论内容。
<br><blockquote><p class="pj-reply"> William 于 2010-05-08 02:03 PM 回复</p> <br/> 这个是博主回复的评论内容 </blockquote>

其中 br 标签不一定每行都存在,但是 <blockquote> 一定有,所以就用它作为我们的定位。

假如评论数据在Excel的B列。


=IFERROR(LEFT(B1,FIND("<blockquote>",B1)-1),B1)

上面的函数就能获取 <blockquote> 之前的内容。我们把它放到C列:


我是最初的用户发表的评论内容。
<br>

这个就是用户发表的评论内容。


=IFERROR(MID(B1,FIND("<blockquote>",B1)+12,FIND("</blockquote>",B1)-FIND("<blockquote>",B1)-12),"")
//其中的 12 是 <blockquote> 有12个字符,这个需要根据你的字符数进行调整

上面的函数就能获取 <blockquote> 和 </blockquote> 之间的内容,我们把它放到D列:


<p class="pj-reply"> William 于 2010-05-08 02:03 PM 回复</p> <br/> 这个是博主回复的评论内容

假如我们只想提取 博主的回复内容


=IFERROR(TRIM(MID(D1,FIND("</p>",D1)+4,LEN(D1))),"")
//其中的 4 是 </p> 有4个字符,这个需要根据你的字符数进行调整

这个我们就得到E列:


<br/> 这个是博主回复的评论内容

因为br 标签不一定每行都在,想去掉直接替换为空就行。

这样我们就通过IFERROR函数完全分离了用户评论和博主回复的内容了,还是非常方便的。

相关推荐

Excel中使用IFERROR提取指定内容:目前有 2 条评论

  1. 微笑
    沙发
    微笑3Firefox 121.0 Android 6.0.1

    会用这些函数立马就能提升效率。

    2024-07-27 00:52 回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

gravatar

question razz sad smile redface biggrin eek shock confused cool lol mad rolleyes wink cry