小编Gar*_*ent的帖子

带公式的文本到二进制

我有一个简短的 VBA 函数,可以生成文本字符串的二进制表示:

Public Function TextToBin(S As String) As String
    Dim i As Long, L As Long

    L = Len(S)
    With Application.WorksheetFunction
        For i = 1 To L
            TextToBin = TextToBin & .Dec2Bin(Asc(Mid(S, i, 1)))
        Next i
    End With
End Function
Run Code Online (Sandbox Code Playgroud)

例如:

在此处输入图片说明

我被要求用一个简单的公式替换这个 UDF,以便应用程序可以在无宏的环境中运行。

我目前的解决方法是放置:

=IFERROR(DEC2BIN(CODE(MID($A$1,COLUMNS($A:A),1))),"")
Run Code Online (Sandbox Code Playgroud)

在单元格B1 中并复制。然后,在另一个单元格中,使用:

=TEXTJOIN("",TRUE,B1:IV1)
Run Code Online (Sandbox Code Playgroud)

但是,我不想承认,我们能做的最好的事情就是使用一万六千多个辅助细胞!

有没有一种简单、紧凑的方法来获得相同的结果?

vba microsoft-excel

6
推荐指数
1
解决办法
1万
查看次数

计算单个单元格中逗号分隔列表中的项目

是否有一个公式可以计算单元格中的项目数,每个项目用逗号分隔?

例如:

CELL A1 =“戴尔、苹果、三星、宏碁”

公式将返回 4。

microsoft-excel microsoft-excel-2010

5
推荐指数
1
解决办法
2万
查看次数

Excel Countif 0、00、000 个单独的条目

我想计算0,00并且000在我的格式为 TEXT 的数据中,但countif()公式为三个搜索条件中的每一个都提供了相同的值。

请找到附件图片了解更多详情

在此处输入图片说明

microsoft-excel countif

5
推荐指数
1
解决办法
517
查看次数

最长的字符串在哪里

我有一小块细胞,比如C4G11。单元格包含各种长度的文本。我可以使用数组公式轻松获得块中最长字符串的长度:

=MAX(LEN(C4:G11))
Run Code Online (Sandbox Code Playgroud)


在此处输入图片说明

我需要一个公式来获取具有这个最长字符串的单元格的地址。如果有多个具有最长字符串的单元格,我需要最靠近块顶部的单元格的地址。如果同一行中有多个具有最长字符串的单元格,则我需要最靠近块左边缘的单元格的地址。

在上面的例子中,公式应该返回E8

对于此工作簿,我不能使用VBA。有什么建议 ??

worksheet-function microsoft-excel

5
推荐指数
1
解决办法
1214
查看次数

Excel INDIRECT() 函数的限制

如果我在A1A2 中有数字数据,那么:

=SUM(A1:A2)
Run Code Online (Sandbox Code Playgroud)

作品和:

=SUM(INDIRECT("A1:A2"))
Run Code Online (Sandbox Code Playgroud)

作品和:

=SUM(A1,A2)
Run Code Online (Sandbox Code Playgroud)

有效但是:

=SUM(INDIRECT("A1,A2"))
Run Code Online (Sandbox Code Playgroud)

不起作用。我猜这是因为"A1,A2"不是有效的单元格引用。

任何人都可以解释为什么会这样,或者向我指出一些给出解释的在线文档?

worksheet-function microsoft-excel

5
推荐指数
1
解决办法
1647
查看次数

获取字母最大值

如果A1中有一个单词, A2中有另一个单词,我可以使用以下方法确定“更大”:

=IF(A2>A1,A2,A1)
Run Code Online (Sandbox Code Playgroud)

在单元格B2中。这里的“更大”意味着如果数据按升序排序,则该值将位于底部:

在此输入图像描述

所以鲸鱼在云之下。

我可以将这种方法向下延伸。因此,如果A3及以下有数据,则在B3中我输入:

=IF(B2>A3,B2,A3)
Run Code Online (Sandbox Code Playgroud)

并抄下:

在此输入图像描述

所以Zygote是“最大”的价值。现在,如果我在A1A11中有数字而不是单词,我就不需要所有这些“辅助”单元格。我可以使用:

=MAX(A1:A11)
Run Code Online (Sandbox Code Playgroud)

我的问题:是否有一个单单元格公式可以返回相当于数字MAX()的“最大”单词?

microsoft-excel

4
推荐指数
1
解决办法
7890
查看次数

压缩 COUNTIFS 公式

试图用一个非常简单的COUNITF/COUNTIFS公式来帮助朋友。数据是这样的:

在此处输入图片说明

目标是计算除迈克约翰朱迪之外的数据单元格。当前公式:

=COUNTIFS(A2:A13,"<>mike",A2:A13,"<>john",A2:A13,"<>judy")
Run Code Online (Sandbox Code Playgroud)

它返回正确的值 3。问题是他要排除的名字多于三个。我们想在B列中列出它们,并让公式引用列表(否则公式会变得很大)。我们已经尝试过:

=SUM(COUNTIF(A2:A13,"<>B2:B4"))
Run Code Online (Sandbox Code Playgroud)

正常输入和数组输入,但它产生 12 !

奇怪的是,如果我们想包括而不是排除那么:

=SUM(COUNTIF(A2:A13,B2:B4))
Run Code Online (Sandbox Code Playgroud)

作品。我提供了一个 VBA 解决方案,但被拒绝了。

microsoft-excel

4
推荐指数
1
解决办法
111
查看次数

基于字符串长度的匹配

我有类似的数据:

在此处输入图片说明


我的目标是:

  • 找出A列中最长的字符串
  • 检索同一行B列中的值

所以在上面的例子中我想要Juliet。如果A列中有多个单元格具有最大长度,那么我需要匹配第一次出现。

我可以使用辅助列轻松完成此操作。在C1 中,我可以输入=LEN(A1)并复制;然后使用=INDEX(B:B,MATCH(MAX(C:C),C:C,0)),但用户不想要辅助列。

microsoft-excel

3
推荐指数
1
解决办法
579
查看次数

与另一个数字相比,在列表中查找绝对最大数字的 Excel 公式

我有一个数字列表,让我们说:

  500        530     460     510
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我使用一个公式来查看 530,460 和 510 以找到与 500 的最大绝对值差异吗?

该公式应得出 40 的答案。

worksheet-function microsoft-excel

3
推荐指数
1
解决办法
43
查看次数

查找字符串中的第一个字母

我需要一个公式来查找并返回字符串中的第一个字母。所以如果一个单元格包含:

1234(*&^%$23ADFG54
Run Code Online (Sandbox Code Playgroud)

该公式将返回:

A
Run Code Online (Sandbox Code Playgroud)

编辑#1:

我目前正在使用以下UDF:

Public Function FirstLetter(Sin As String) As String
    Dim i As Long, CH As String
    FirstLetter = ""
    For i = 1 To Len(Sin)
        If Mid(Sin, i, 1) Like "[A-Z]" Then
            FirstLetter = Mid(Sin, i, 1)
            Exit Function
        End If
    Next i
End Function
Run Code Online (Sandbox Code Playgroud)

但我需要一个非 VBA 解决方案。

microsoft-excel

2
推荐指数
1
解决办法
2万
查看次数

如何在Excel中将Except过滤器作为集合操作?

说我有两套:

1
2
3
4
5
6 
Run Code Online (Sandbox Code Playgroud)

3
6
Run Code Online (Sandbox Code Playgroud)

我希望能够获得除第二个之外的第一个,例如 1 2 4 5。

我怎么能那样做?

worksheet-function microsoft-excel

1
推荐指数
1
解决办法
9603
查看次数

组合公式

我可以将这 3 个公式合并为一个公式吗?

=IF(ISBLANK(R32),0)
=IF(R32<12,1)
=IF(R32>11,1.5)
Run Code Online (Sandbox Code Playgroud)

如果没有输入,我想返回计数值为零的单元格,但如果单元格超过 11,则该单元格值为 1.5,如果较低,则值为 1,除非空白然后为空白。

microsoft-excel microsoft-excel-2013

-1
推荐指数
1
解决办法
74
查看次数