IF Cell Sheet1!A1匹配Cell Sheet2中的值!B1,然后添加字符串 “,数量:”& Sheet2!D1 在Cell Sheet1中的现有值的末尾!C1
例如:
第1页 - 原始:
.a
第2页 - 原始:
.a
工作表1 - 宏观之后:
Col A Col B Col C
123 Blue
444 Large
758 Pink
这种类型的交叉表公式是否可行?我搜索了网站,但没有找到我正在尝试编码的场景。我在同一张表格中做了类似的事情并且使用了一个空的Cell C,但是从来没有这样......
感谢您的帮助!
答案 0 :(得分:0)
<强>宏强>
根据您的要求,这很可能是宏,但在这种情况下,如果您只想显示这些值,则根本不需要宏。如果您确实需要更改原始内容,则需要一个宏。但是,使用常规Excel公式和函数可以很容易地解决这个问题。
<强>式强>
如果您需要在与其他值连接的单元格中显示值,则可以使用CONCATENATE
函数,也可以使用&
运算符。
实施例
=CONCATENATE(C3,",",A3)
在Excel中您可以使用单元格的任何地方,您也可以使用完整的引用,包括工作表名称。像这样
=CONCATENATE(Sheet2!C3,",",Sheet1!A3)
如果您更喜欢使用&
运算符,则可以执行上一个示例:
=Sheet2!C3 & "," & Sheet1!A3
您始终可以隐藏原始列,并仅使用旁边列中的公式显示连接版本。
<强>改进强> 我建议您研究使用 Tables 而不是 Ranges 。只需点击插入&gt;菜单中的表,您将拥有一个包含额外功能的表。
答案 1 :(得分:0)
在这里,我的纯vba方法解决您的问题:
Public Sub getQuantity()
Dim sh1, sh2 As Worksheet
Dim startRow As Integer
Dim foundCell As Range
'Set sheets
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
'set the start row for Sheet1
startRow = 1
'loop until column A of Sheet1 is blank
Do While sh1.Range("A" & startRow) <> ""
'search id of column A from column B of Sheet2
Set foundCell = sh2.Range("B:B").Find(sh1.Range("A" & startRow), LookIn:=xlValues)
'If match id is found, add quantity in column C of Sheet1.
If Not foundCell Is Nothing Then
sh1.Range("C" & startRow) = sh1.Range("C" & startRow) & ", quantity:" & foundCell.Offset(0, 2).Value
End If
'increase row
startRow = startRow + 1
Loop
End Sub