String 如何在Excel中比较字符串列表中的字符串

String 如何在Excel中比较字符串列表中的字符串,string,excel,if-statement,compare,formula,String,Excel,If Statement,Compare,Formula,I2和J22之间有一些食品名称和价格。例如,AYĞICEK YAĞI(英语中的葵花籽油)每公斤4美元。在工作表的左侧,您可以看到其他列表。我需要的是 我想比较所有A*列和I2:I22之间的字符串,得到J2:J22之间写入的价格,然后将其写入D*列 有500多行,我需要为所有行执行此操作 您可以看到一些粗体标题,它们应该受到保护。在您所附的工作簿中,VLOOKUP将在没有可用值时返回\N/A 在表ogle_aksam_gramaj单元格D4中,使用以下公式: =SUMIF($I:$I,$A4,$J

I2和J22之间有一些食品名称和价格。例如,AYĞICEK YAĞI(英语中的葵花籽油)每公斤4美元。在工作表的左侧,您可以看到其他列表。我需要的是

我想比较所有A*列和I2:I22之间的字符串,得到J2:J22之间写入的价格,然后将其写入D*列

有500多行,我需要为所有行执行此操作


您可以看到一些粗体标题,它们应该受到保护。

在您所附的工作簿中,
VLOOKUP
将在没有可用值时返回
\N/A

在表ogle_aksam_gramaj单元格D4中,使用以下公式:

=SUMIF($I:$I,$A4,$J:$J)

然后,您可以向下拖动它,它将根据同一页中提供的详细信息(范围I:J)为您提供价格

sum if的优点(或缺点,取决于您)是,如果没有可求和的内容,它将返回0。在您的工作表中,项目在列表中必须是唯一的,否则,它将继续对每个实例求和。因此,如果AYĞichik YAĞI有两次,它将被求和两次

您可以使用具有(仅限唯一值)的高级过滤器,以确保所有成分都已说明,并且仅提及一次


谢谢。

你似乎想出了一个公式;现在你需要一种方法来分配它。您的工作表设计不适合简单地填写公式。但是,由于C列中的数字标识了D列和E列中需要公式的有效条目,因此一个简短的子过程可以快速将公式放入正确的位置

Sub fillFormula()
    Dim w As Long, vWSs As Variant, vFRMLs As Variant

    vWSs = Array("ogle_aksam_gramaj", "kahvalt" & ChrW(305) & "_gramaj", _
                 "araogun_gramaj")

    For w = LBound(vWSs) To UBound(vWSs)
        With Worksheets(vWSs(w))
            With .Columns(3)   '<~~ going to look at column C for numbers
                With .SpecialCells(xlCellTypeConstants, xlNumbers)
                    .Offset(0, 1).FormulaR1C1 = _
                        "=IFERROR(VLOOKUP(RC1, 'urunler'!C1:C2, 2, FALSE), """")"
                    .Offset(0, 2).FormulaR1C1 = _
                        "=IFERROR(RC4*RC3, """")"
                End With
            End With
        End With
    Next w
End Sub
Sub-fillFormula()
尺寸w为长,vWSs为变型,vFRMLs为变型
vWSs=数组(“ogle_-aksam_-gramaj”、“kahvalt”和ChrW(305)和“gramaj”_
“araogun_gramaj”)
w=LBound(vWSs)至UBound(vWSs)
带工作表(vWSs(w))

带。第(3)列“见。也可在中找到。谢谢@Jeeped。我写了=VLOOKUP(A4;Sayfa1!A1:B22;2;0),它是有效的。但是列中有一些标题,当我尝试应用D*中的所有列时,会产生问题。你有办法解决这个问题吗?你例子中的公式与你的图片不符。问题可能是,你还没有做出
Sayfa1!A1:B22
absolute?我有很多想法,但我没有时间键入您的样本数据来证明解决方案。嗨@DaveExcel。我把I2和J22中的值放到Sayfa1中。我需要的是;如果字符串匹配,函数将获取价格。在其他情况下,它不会更改列的值