只是一个免责声明:我对Excel和sql的经验有限......我基本上都是菜鸟,所以请耐心等待。
我有一个大的Excel电子表格,每天发送给我,我想操纵。
我想添加几个根据各自行创建值的列。
ID Color Brand Indicator
1 Green Vizio TRUE
2 Yellow Samsung FALSE
3 Blue Samsung TRUE
4 Red Sony FALSE
5 Orange Vizio TRUE
在上面的示例中,指标列是我希望根据前一列中的值创建的列。如果Brand在其中包含单词Vizio,或者如果颜色为蓝色,则指示符应为true。我提到它必须包含vizio这个词,因为有些情况下它不仅仅是" vizio",但也许" vizio tv"。
我希望尽可能自动化这个过程,所以您认为最好使用Excel VBA宏或SQL吗?
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
您可以使用以下Excel宏。
Public Sub AddIndicators()
Const INDICATOR_1_COLUMN = 4
Const INDICATOR_1_FORMULA = "=OR(IFERROR(SEARCH(""vizio"",C2),0),(B2=""blue""))"
[a2:index(a:a,counta(a:a))].Offset(, INDICATOR_1_COLUMN - 1) = INDICATOR_1_FORMULA
End Sub
可以轻松扩展其他指标列。
要让这个宏可以在您收到每日工作簿时运行(并且无需将宏添加到传入的工作簿),只需将此宏添加到Personal Workbook。
完成此操作后,只需确保您的日常工作簿已打开,并在执行宏之前在工作表上找到指示符。
如果您不希望公式保留在指标列中,则可以使用此版本的宏:
Public Sub AddIndicators()
Const INDICATOR_1_COLUMN = 4
Const INDICATOR_1_FORMULA = "=OR(IFERROR(SEARCH(""vizio"",C2),0),(B2=""blue""))"
With [a2:index(a:a,counta(a:a))].Offset(, INDICATOR_1_COLUMN - 1)
.Formula = INDICATOR_1_FORMULA
.Value = .Value
End With
End Sub
答案 1 :(得分:0)
您的要求非常简单。您不必使用VBscript,宏等。可以使用excel函数完成。
=OR(ISNUMBER(SEARCH("blue",B2)),(ISNUMBER(SEARCH("vizio",C2))))
假设:颜色在B列中,Brand在列c中,数据从第2行开始。第一行用于标题。