สมมติว่ารายการสตริงของคุณอยู่ใน 1 เซลล์ต่อแถว - คุณสามารถใช้สูตรอาร์เรย์ได้
เราจะบอกว่ารายการที่อยู่ในA1:A3
และช่วง B B1:B3
อยู่ใน หากต้องการนับสำหรับแต่ละรายการในรายการ A คุณสามารถใช้ -
=COUNT(IF(FIND(A1,$B$1:$B$3)>0,1,0))
แต่นี้เป็นสูตรอาร์เรย์ดังนั้นเมื่อคุณพิมพ์คุณเสร็จสิ้นโดยการกดปุ่มCtrl+ Shft+ และคุณจะเห็นวงเล็บปีกกาEntr{}
หาก Range B อยู่ในหลายเซลล์คุณสามารถใช้บางอย่างเช่น -
=COUNTIF($B$6:$D$8,A1)
อาจมีอีกวิธีด้วยสูตร แต่ฉันไม่สามารถคิดได้ คุณสามารถสร้างคอลัมน์ผู้ช่วยสำหรับสิ่งที่คุณกำลังพยายามหาโดยใช้
=IF(ISERROR(MATCH($A$1,$B6:$D6)),0,1)
ลากลงแถวจากนั้นรวมคอลัมน์นั้น แต่นั่นเป็นคอลัมน์ตัวช่วยมากมายถ้าคุณต้องการนับมันสำหรับแต่ละค่า ..
หากคุณเปิดให้ VBA UDF ที่คล้ายกับสิ่งนี้จะใช้งานได้ -
Public Function countrow(rng As Range, str As String) As Integer
Dim a As Integer
a = 0
For Each Row In rng
For Each c In Row
If InStr(1, str, c) Then
a = a + 1
Exit For
End If
Next
Next
countrow = a
End Function
ชอบ -
=countrow(A6:C9,A1)