Excel - 如何按 "word contained" 筛选?
Excel - How do I filter by "word contained"?
我有以下格式的数据:
我想按列表中的每个唯一单词进行过滤或透视过滤。我知道如何检索唯一单词列表,如下所示:
所以我有那个数据。但是我如何过滤所有这些值。我想查看针对这些词中的每一个词汇总的所有受欢迎程度和价格的报告。这当然意味着重叠,因为“自行车零件”数据会影响自行车和零件编号。想法? :)
要回答您的最终问题,请使用 =SUMIF
公式。
要使这一切自动化,请结合使用 VBA 文本到列、删除重复项和 =SUMIF
公式。
我能够通过以下方式创建所需的结果,尽管获得受欢迎程度的总和似乎很奇怪...
Sub test1()
Application.ScreenUpdating = False
Dim lRow As Integer
Dim sRange As Range
lRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
Columns("F:H").ClearContents
Range("A2:A" & lRow).Select
Selection.Copy
Range("F2").Select
ActiveSheet.Paste
Columns("F:F").Select
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("F1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=" ", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Set sRange = Range("G1")
sRange.Select
While Selection.End(xlDown).Value <> ""
sRange.Offset(1, 0).Select
Range(ActiveCell, ActiveCell.Offset(lRow - 1, 0)).Select
Selection.Cut
Range("F2").Select
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
ActiveSheet.Paste
Set sRange = sRange.Offset(0, 1)
sRange.Select
Wend
lRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "F").End(xlUp).Row
Columns("F:F").Select
ActiveSheet.Range("$F:$F$" & lRow).RemoveDuplicates Columns:=1, Header:=xlNo
lRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "F").End(xlUp).Row
Range("F2").Select
ActiveCell.Offset(0, 1).Value = "=SUMIF($A:$A,""*""&$F2&""*"",$B:$B)"
ActiveCell.Offset(0, 1).Style = "Percent"
ActiveCell.Offset(0, 2).Value = "=SUMIF($A:$A,""*""&$F2&""*"",$C:$C)"
ActiveCell.Offset(0, 2).Style = "Currency"
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(lRow - 2, 2)).FillDown
Range("F1").Value = Range("A1").Value
Range("G1").Value = Range("B1").Value
Range("H1").Value = Range("C1").Value
Range("A1").Select
Application.ScreenUpdating = True
End Sub
我有以下格式的数据:
我想按列表中的每个唯一单词进行过滤或透视过滤。我知道如何检索唯一单词列表,如下所示:
所以我有那个数据。但是我如何过滤所有这些值。我想查看针对这些词中的每一个词汇总的所有受欢迎程度和价格的报告。这当然意味着重叠,因为“自行车零件”数据会影响自行车和零件编号。想法? :)
要回答您的最终问题,请使用 =SUMIF
公式。
要使这一切自动化,请结合使用 VBA 文本到列、删除重复项和 =SUMIF
公式。
我能够通过以下方式创建所需的结果,尽管获得受欢迎程度的总和似乎很奇怪...
Sub test1()
Application.ScreenUpdating = False
Dim lRow As Integer
Dim sRange As Range
lRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
Columns("F:H").ClearContents
Range("A2:A" & lRow).Select
Selection.Copy
Range("F2").Select
ActiveSheet.Paste
Columns("F:F").Select
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("F1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=" ", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Set sRange = Range("G1")
sRange.Select
While Selection.End(xlDown).Value <> ""
sRange.Offset(1, 0).Select
Range(ActiveCell, ActiveCell.Offset(lRow - 1, 0)).Select
Selection.Cut
Range("F2").Select
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
ActiveSheet.Paste
Set sRange = sRange.Offset(0, 1)
sRange.Select
Wend
lRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "F").End(xlUp).Row
Columns("F:F").Select
ActiveSheet.Range("$F:$F$" & lRow).RemoveDuplicates Columns:=1, Header:=xlNo
lRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "F").End(xlUp).Row
Range("F2").Select
ActiveCell.Offset(0, 1).Value = "=SUMIF($A:$A,""*""&$F2&""*"",$B:$B)"
ActiveCell.Offset(0, 1).Style = "Percent"
ActiveCell.Offset(0, 2).Value = "=SUMIF($A:$A,""*""&$F2&""*"",$C:$C)"
ActiveCell.Offset(0, 2).Style = "Currency"
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(lRow - 2, 2)).FillDown
Range("F1").Value = Range("A1").Value
Range("G1").Value = Range("B1").Value
Range("H1").Value = Range("C1").Value
Range("A1").Select
Application.ScreenUpdating = True
End Sub