标签: worksheet-function

Excel 中的分箱

MS Excel 中的哪些公式可以用于 -

等深度分箱
等宽度分箱

excel worksheet-function

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

从 Excel 中的分隔字符串中提取单词?

我需要提取分号之间的特定单词,条件是这些单词包含“@”,这意味着电子邮件。

这是一个例子:

A1 >> james john;Paris street;p.o. box:12345;tel.987654321;username@site.com;usa
B1 >> david eric;34th street;tel.543212345;name@web.net;canada;ottawa
Run Code Online (Sandbox Code Playgroud)

... 等等

请注意,电子邮件没有特定的位置,因此它可以位于任何地方。另外,除了“@”之外没有常见的单词或字符,因此必须有一个公式在分号+包含的“@”之间进行选择,以提取电子邮件并将其放入A2和B2等中

excel worksheet-function

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

如何对包含错误的命名值范围求和?

我有一个Excel电子表格,它从我需要运行计算的其他来源导入数据.我需要处理的数据在命名范围内 - 它恰好在C12:C36范围内 - 但它被称为"SumData".

此范围内的值包含许多错误,目前包括#NUM!和#N/A,但可能包含其他错误.我需要总结这些价值观.

我理解如何做总和公式:

=SUM(SumData)
Run Code Online (Sandbox Code Playgroud)

要么

=SUM(C12:C36)
Run Code Online (Sandbox Code Playgroud)

我也可以使用IFERROR来检查错误:

=IFERROR(C12:C36, 0)
Run Code Online (Sandbox Code Playgroud)

但IFERROR似乎只检查当前相应的行到我输入的公式.即如果我的公式是在D12中输入的,它只检查行C12上的错误,并返回该值(如果C12包含错误,则返回0).

如果我把两者结合起来:

=SUM(IFERROR(SumData,0))
Run Code Online (Sandbox Code Playgroud)

我没有得到有效的返回值.它基本上给了我最近的相应行 - 例如:

    C      D
    -----------
12  #NUM!  
13  2      =SUM(IFERROR(SumData,0)) = 2 (I would expect this to produce 48)
14  5
15  7
16  #N/A
17  23
18  6
19  5
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

excel worksheet-function excel-2010

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

使用 Excel 匹配结果作为列选择

我有一个MATCH返回有效行号的表达式。

我现在需要将此结果与已知的列标识符组合以返回该单元格的结果。

所以,如果A50= 上的东西"apple",那么我可以得到 cell 的内容D50

我看了看INDIRECTINDEX,但我看不出它有什么帮助。

回答:

=INDEX('SHEET1'!A:D,MATCH(SHEET2!A2,'SHEET1'!B:B,0),4)
Run Code Online (Sandbox Code Playgroud)

我得INDEX工作了。这需要更多的阅读。

'SHEET1'!A:D是要使用的范围INDEX

MATCH(SHEET2!A2,'SHEET1'!B:B,0)正在根据我的MATCH标准拉行。

4以从使用所述返回单元格内容从该数中MATCH的上方。

希望这将有助于其他人了解如何使用INDEX.

excel worksheet-function excel-match

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

运行时错误'9':下标超出范围 - 仅当Excel VBE关闭时

所有,

我在Excel宏中遇到一些VBA代码的错误.这是我正在尝试的工作流程:

  • 我有一个模块运行代码来创建一个新的工作表,格式化它并添加一堆值
  • 在同一个模块中,我根据填充的最后一行确定了一系列单元格(根据前面的步骤,它总是不同的)
  • 一旦我知道这个范围,我使用下面的代码写入新创建的工作表代码模块,这样我就可以设置'change_event'.我只想在我刚刚确定的范围内的值发生变化时触发change_event:`

    Dim Startline As Long
    Startline = 1
    Dim x As Integer
    x = Errors.Count - 1
    
    Dim rng As Range
    Set rng = Range("D" & LastRow - x & ":" & "D" & LastRow)
    
           With ThisWorkbook.VBProject.VBComponents(VRS.CodeName).CodeModule
            Startline = .CreateEventProc("Change", "Worksheet") + 1
            .InsertLines Startline, "Dim rng As Range "
            Startline = Startline + 1
            .InsertLines Startline, "Set rng = Range(" & """" & CStr(rng.Address) & """" & ")"
            Startline = Startline + 1
            .InsertLines Startline, …
    Run Code Online (Sandbox Code Playgroud)

excel vba worksheet-function subscript

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

VBA中的均方根(rms)函数?

所以我在我的工作表中计算基本统计数据,它包括如下代码:

xxx = Application.worksheetfunction.平均等(等等)

yyy = Application.worksheetfunction.min(等等等

zzz = Application.worksheetfunction.最大(等等等

我的问题:是否有一个RMS等效函数,我可以简单地将其插入代替我在该代码中具有'average,min,max'函数的位置?如果没有,那么编写RMS解决方案的最有效方法是什么?

我希望我已经明确地说明了目标.我很好奇VBA是否有预定义的RMS功能,或者我是否需要创建某种用户定义的功能?〜其中我也很新,所以如果没有简单的代码行为此写,我将不得不在UDF上做更多的阅读.

编辑:

我有大约30,000行,为简单起见:想象两列.A列具有年份,即1941年或其他任何直至2008年.B列是数值.我只是想把代码放在一起,给出平均值,最小值,最大值和RMS值的十年摘要.

excel vba worksheet-function

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

WorksheetFunction.Filter 中的数据类型错误

我正在尝试创建一个函数 MonstersInLevel(),它根据第一列的值过滤我的“LevelMonsters”命名范围的第二列。该范围的第一列表示游戏级别 ID,第二列表示出现在该级别中的怪物 ID。这是我的范围的样子。

如果我调用 MonstersInLevel(2),我希望该函数返回一个由“2”、“3”和“4”组成的范围。

Function MonstersInLevel(level As Integer) As Range
    MonstersInLevel = Application.WorksheetFunction.Filter(Range("LevelMonsters").Columns(2), Range("LevelMonsters").Columns(1) = level)
End Function
Run Code Online (Sandbox Code Playgroud)

我得到:

公式中使用的值的数据类型错误

我将 FILTER 函数用作 Excel 公式。我认为 FILTER 标准的 Excel 和 VBA 语法存在一些差异。

excel vba worksheet-function

5
推荐指数
3
解决办法
1254
查看次数

WorksheetFunction.Transpose 更改数据类型

WorksheetFunction.Transpose在 VBA中使用将混合日期/字符串的一维数组转换为二维数组以写入工作表。

将我的 Windows 区域设置设置为DMY,写回的日期正在切换月/日。

excel vba transpose worksheet-function

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

如果所有Excel列值不一致,则返回

我在Excel电子表格中有以下数据:

    A  B  C
 1  b  b  b
Run Code Online (Sandbox Code Playgroud)

我想在比较行中每个(文本)值的数据后面的列中放置一个公式,如果它们全部相同,则返回TRUE,即A = B = C. 如果一个或多个值不一致,我希望它返回FALSE.即

    A  B  C  D
 1  b  b  b  TRUE
 2  b  e  b  FALSE
 3  e  b  b  FALSE
Run Code Online (Sandbox Code Playgroud)

我知道像AND这样的逻辑函数,因此可以构造类似的东西

AND(A1=B1,A1=C1.. etc)但是,一旦列数增加,这很快就会变得笨拙.

重组数据是不可行的.

有谁知道OOTB/VB解决方案?

excel worksheet-function excel-2003

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

Excel函数从一个范围返回第一行或第一列?(在数据表中进行更好的双向查找)

所以我试图从数据表中进行经典的2路查找,即:

     Jan-00   Feb-00   Mar-00
Joe
Bill
Steve
Run Code Online (Sandbox Code Playgroud)

所以,我想在"Mar-00"中查找"Joe"的值.

这种类型的查找通常使用INDEX和MATCH函数的组合来完成.这种方法的缺点是MATCH只能作用于1维范围,因此在包含大量表格的大型电子表格中,您最终必须为每个表定义3个范围而不是一个(一个用于数据,一个用于标题行,左列一个).

我希望能够做到这样的事情:

index(data1,match("Mar-00",getrow(mydata,1)),match("Joe",getcolumn(mydata,1)))
Run Code Online (Sandbox Code Playgroud)

excel中有这样的东西(或者,这样做的方式完全不同,也许是excel中的一些新功能)?

excel worksheet-function

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