Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何消除Excel多行列中不需要的文本_Excel_Sorting_Data Cleaning - Fatal编程技术网

如何消除Excel多行列中不需要的文本

如何消除Excel多行列中不需要的文本,excel,sorting,data-cleaning,Excel,Sorting,Data Cleaning,首先,如果这个问题在别处得到解决,我表示歉意。 不管怎么说,我最近下载了一个excel表格,上面有人表示他们的种族。所以,如果你是亚洲人,你会选择亚洲人。当我下载数据时,每个单元格都会显示诸如Checked:Asian、Unchecked:White、Unchecked:Black等信息,。。。 请参见以黄色突出显示的图像列。 你可以想象,我希望专栏只勾选:亚洲人,而不是其他我不感兴趣的东西 问题:如何消除垃圾? 我尝试在Excel中使用“文本到列”功能,但它只保留了第一列,我不希望保留第一列,

首先,如果这个问题在别处得到解决,我表示歉意。 不管怎么说,我最近下载了一个excel表格,上面有人表示他们的种族。所以,如果你是亚洲人,你会选择亚洲人。当我下载数据时,每个单元格都会显示诸如Checked:Asian、Unchecked:White、Unchecked:Black等信息,。。。 请参见以黄色突出显示的图像列。 你可以想象,我希望专栏只勾选:亚洲人,而不是其他我不感兴趣的东西

问题:如何消除垃圾? 我尝试在Excel中使用“文本到列”功能,但它只保留了第一列,我不希望保留第一列,因为一些选中的数据位于第三列或第四列。 我已经联系了应用程序网络经理,得到的答复是..很抱歉,我们的软件就是这样工作的,你只需要清理一下就可以了 你自己不用说漂亮的$@*&!!起来


[带数据的谷歌电子表格:请单击工作簿上的工作表名称竞赛

我为您准备了一个VBA函数,用于提取选中的文本段。它首先查看数据是否以Checked开头,在这种情况下,它将获取第一个未选中的文本开始处的文本。如果不是,则查找带有空格的Checked,然后again获取直到下一个未选中的文本。然后删除字符串开头的选中:文本

Function fExtractChecked(strData As String) As String
    If Left(strData, 7) = "CHECKED" Then
        strData = Left(strData, InStr(strData, "UNCHECKED") - 1)
        fExtractChecked = strData
    ElseIf InStr(strData, " CHECKED") > 0 Then
        strData = Mid(strData, InStr(strData, " CHECKED"))
        If InStr(strData, "UNCHECKED") > 0 Then
            strData = Left(strData, InStr(strData, "UNCHECKED") - 1)
        End If
        fExtractChecked = strData
    End If
    If Len(fExtractChecked) > 0 Then
        If InStr(fExtractChecked, ":") > 0 Then
            fExtractChecked = Mid(fExtractChecked, InStr(fExtractChecked, ":") + 1)
        End If
    End If
    fExtractChecked = Trim(fExtractChecked)
End Function
只需将该函数粘贴到新模块中,然后就可以像任何内置Excel函数一样使用该函数,因此,如果数据位于单元格B1中,则可以将其键入单元格C1:

=fExtractChecked(B1)

关于,

将此公式放在空白栏中,然后复制:

=IFERROR(SUBSTITUTE(FILTERXML("<a><b>"&SUBSTITUTE(B2&" UNCHECKED:",":","</b><b>")&"</b></a>","//b[contains(.,'UN')=false]/following-sibling::*[1]")," UNCHECKED",""),"")

你能以文本形式发布一些完整的示例,以便我们可以复制粘贴到测试中吗?你想要一个公式还是vba?你熟悉vba或公式吗?你能包括你清理这些数据的尝试吗?不,我不知道vba,但我在excel中使用了文本到列,只是它只保留了第一块文本,并删除了我想要的其他项目。你需要复制单元格的内容用于编辑文章和粘贴文章中的内容。请不要链接工作簿,许多工作簿不会下载。而是选择一个单元格。在公式栏中高亮显示文本,复制并粘贴它。然后以这种方式执行下几个单元格。或者高亮显示多个单元格,复制并粘贴到文本阅读器中,然后复制粘贴该单元格这是一个天才代码。你以前做过吗?我以前做过类似的事情,但不是这个特定的模式。我已经尝试过很多次了,但我一直没有找到空白。我不确定我做错了什么。但我会继续尝试。好的,那么你已经将函数粘贴到一个新的代码模块中了吗?检查t如果函数正在工作,在Ctl+G访问的即时窗口中,键入?fextractchecked checked:白色或高加索未选中:黑色或非洲裔未选中:亚裔或亚裔美国人,然后按return。您应该会看到白色或高加索人出现。如果有效,则返回工作表并显示数据,在空白单元格中键入=fE,然后按回车键双击所建议的函数,双击所建议的函数,这样它就出现在单元格AS=fExtTeCube中,选择要检查的单元格和类型。我只是不确定什么是错误的,我粘贴了VBA代码,保存了它,当我键入空白单元格时,函数fExtTebug弹出,我点击并输入,然后只剩下空白单元格。没有错误消息。但是当我单击单元格时,它显示有一个公式,但没有数据。