小编Nic*_*ick的帖子

计算动态数组/范围内的小计

我有下面的数据,其中 A 列包含一个公式,用于从另一张工作表中提取以下数据,这样如果修改原始工作表,则更新值。

对于每组金属,我希望创建如图所示的值的小计。

在此处输入图片说明

我很欣赏 excel 有一个小计功能,但是当我尝试实现这一点时,我收到一个错误,指出无法更改数组。有没有办法将它合并到动态数组中?

可能的 VBA 解决方案? 我在网上发现了以下 VBA 代码,它在某种程度上产生了我想要的效果,但是就像以前一样,这仅适用于纯数据,如果我将其应用于提取的数据,将返回相同的错误“无法修改数组”。

Sub ApplySubTotals()
   Dim lLastRow As Long
   
   With ActiveSheet
      lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
      If lLastRow < 3 Then Exit Sub
      .Range("E5:M" & lLastRow).Subtotal GroupBy:=1, _
         Function:=xlSum, TotalList:=Array(1, 2), _
         Replace:=True, PageBreaks:=False, SummaryBelowData:=True
   End With
End Sub
Run Code Online (Sandbox Code Playgroud)

作为完全不熟悉 VBA 的人,我不确定这段代码在应用于动态数组时有多大帮助。

如果有人能想出一种方法来实现如上图所示的所需输出,要么使用 VBA,要么通过修改创建动态数组的公式更好(不确定仅使用公式是否可行),我们将不胜感激。

excel vba excel-formula dynamic-arrays excel-365

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

使用强力查询通过数字字符串的最小长度从文本中提取数字

问题 我的任务是整理一些包含文本和数字混合的非常混乱的数据,并希望使用强力查询将代码与数据分开。幸运的是,需要分隔的代码仅由数值组成,并且长度似乎为 7 个字符(假设为 6 个或更长)。

下面是我希望如何分离数据的示例:

在此输入图像描述

到目前为止: 到目前为止我有这个代码:

let
Source = Excel.CurrentWorkbook(){[Name="Table5"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Input ", type text}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type","_"," ",Replacer.ReplaceText,{"Input "}),
#"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","v"," ",Replacer.ReplaceText,{"Input "}),
#"Added Custom" = Table.AddColumn(#"Replaced Value1", "TextSplit", each Text.Split([#"Input "], " ")),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "ListTransform", each List.Transform([TextSplit], each Text.Select(_,{"0".."9"}))),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "ListSelect", each List.Select([ListTransform], each Text.Length(_)>=5)),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "TextCombine", each Text.Combine([ListSelect], ", ")),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom3",{"TextSplit", …
Run Code Online (Sandbox Code Playgroud)

excel split text-extraction extract powerquery

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