代码之家  ›  专栏  ›  技术社区  ›  Ads5

Excel计算同一单元格中的独立值

  •  0
  • Ads5  · 技术社区  · 6 年前

    我有一个excel表格,其中需要计算一个单元格中的不同值。
    1和0随着 <br> 把他们分开了。我需要分别数一和零。 10000010011<br>10101010101<br>01100111000<br>101101010110 在本例中,我需要四个值来指示1和0的数量。这里应该是:零1:7一1:4,零2:5一2:6,零3:6一3:5,零4:5一4:7。如果有任何建议,我将不胜感激!

    4 回复  |  直到 6 年前
        1
  •  1
  •   pnuts    6 年前

    假设每个二进制始终为11位:

    将数据文本解析为列/固定宽度,并在尖括号周围加上分隔符,然后跳过 <br> 列并应用公式,例如:

    =LEN(A1)-LEN(SUBSTITUTE(A1,1,""))
    

    复制以适应并重复 ,0, 代替 ,1, 或者将上述结果减去 11

        2
  •  0
  •   Darren Bartrup-Cook    6 年前

    如果VBA答案正常,则可以使用此功能:

    具有 10000010011<br>10101010101<br>01100111000<br>101101010110 在单元格中 A1 公式 =Count1And0(A1) 将返回 4:7, 6:5, 5:6, 7:5

    Public Function Count1And0(Target As Range) As String
    
        Dim vSplit As Variant
        Dim vNum As Variant
        Dim sFinal As String
        Dim lCount As Long
    
        vSplit = Split(Target, "<br>")
    
        For Each vNum In vSplit
            lCount = Len(vNum) - Len(Replace(vNum, "0", ""))
            sFinal = sFinal & Len(vNum) - lCount & ":" & lCount & ", "
        Next vNum
    
        Count1And0 = Left(sFinal, Len(sFinal) - 2)
    
    End Function
    
        3
  •  0
  •   Mnaukal    6 年前

    您可以将“左”和“右”功能与“搜索”结合使用,按“<br>”拆分单元格。您可以将它们放在一行(多个单元格中),以便下一个单元格将前一个单元格的输出作为输入。

    A1是你的输入,然后 =RIGHT(A1,LEN(A1)-FIND("<br>",A1,1) - 3) 进入A2(这将删除第一个“<br>”之前的所有内容)。然后用同样的公式 A2 而不是 A1 随处可见(这将删除第二个“<br>”之前的所有内容,等等

    更多信息: https://support.office.com/en-us/article/split-text-into-different-columns-with-functions-49ec57f9-3d5a-44b2-82da-50dded6e4a68

        4
  •  0
  •   Ads5    6 年前

    亲爱的,谢谢你的建议!基本上,我欺骗了它,用了一种简单但更长的方式来拆分单元格(列中的文本)。