[英]How to compare a string within a string list in Excel
您似乎想出了一個公式; 現在您需要一種分配它的方法。 您的工作表設計不適合簡單地填寫公式。 但是,由於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
IFERROR函數已用於“包裝”查找和多重復制公式。 它捕獲錯誤並提供替代結果; 在這種情況下,零長度的字符串看起來空白。
kahvaltı_gramaj工作表由於Unicode字符而導致VBA中出現問題。 您可以嘗試其他方法循環瀏覽工作表。
二進制(啟用宏)的工作簿可以從我自己的公共Dropbox的位置 。
在您附加的工作簿中,如果沒有可用值, VLOOKUP
將返回VLOOKUP
#N/A
在工作表ogle_aksam_gramaj單元格D4中,使用以下公式:
=SUMIF($I:$I,$A4,$J:$J)
然后,您可以將其向下拖動,它應該根據同一張表中提供的詳細信息為您提供價格(范圍I:J)
總和的好事(或不好,取決於您)是:如果沒有總和,它將返回0。 在工作表中,項目在列表中必須唯一,否則,它將繼續對每個實例進行求和。 因此,如果AYÇICEKYAĞI存在2次,則將其相加兩次。
您可以將“高級過濾器”與(僅唯一值)一起使用,以確保所有成分都被考慮並且僅被提及一次。
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.