我有下面的数据,其中 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,要么通过修改创建动态数组的公式更好(不确定仅使用公式是否可行),我们将不胜感激。
问题 我的任务是整理一些包含文本和数字混合的非常混乱的数据,并希望使用强力查询将代码与数据分开。幸运的是,需要分隔的代码仅由数值组成,并且长度似乎为 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)