返回列表 上一主題 發帖

[發問] 請問如何讀取儲存格裡的詞的次數?

[發問] 請問如何讀取儲存格裡的詞的次數?

大家好,

想請教大家一個問題:
1.png
2022-1-18 19:12


相關說明:
(1) A4:B6,這個是資料
(2) E4,E5 是想讀取的詞
(3) F4,F5 是讀取的詞的次數
(4) G4,G5 是該讀取的詞出現在儲存格A4~A6對應的哪一個值(Q1,Q2,Q3)

希望能把(3)(4),用公式寫出來。(我有試了用countif,但好像不能成功運作><)

最後,附上附檔給您參考: 活頁簿2.zip (6.84 KB)

如果看不懂問題的描述可以問我,再麻煩大家協助幫忙,謝謝大家。

本帖最後由 samwang 於 2022-1-19 08:04 編輯

回復 1# gaishutsusuru
只會VBA,僅供參考,謝謝
Sub test()
Dim Arr, Brr, a, xD, T$, i&, i1&
Brr = Range([e4], [e65536].End(3).Offset(, 2))
Arr = Range([a4], [b65536].End(3))
For i1 = 1 To UBound(Brr)
    T = Brr(i1, 1)
    For i = 1 To UBound(Arr)
        a = Split(Arr(i, 2), " ")
        For j = 0 To UBound(a)
            If InStr(a(j), ",") Then a(j) = Replace(a(j), ",", "")
            If InStr(a(j), ".") Then a(j) = Replace(a(j), ".", "")
            If a(j) = T Then
                Brr(i1, 2) = Brr(i1, 2) + 1
                Brr(i1, 3) = IIf(Brr(i1, 3) = "", Arr(i, 1), Brr(i1, 3) & "," & Arr(i, 1))
            End If
        Next
    Next
Next
Range("e4").Resize(UBound(Brr), 3) = Brr
End Sub
1.JPG

TOP

回復 2# samwang


您好,謝謝您的幫忙,

但我實際測了以後,出現如下圖:
(按一次巨集)
2.png
2022-1-19 08:10

(按二次巨集)
3.png
2022-1-19 08:10


另一部份,
(1) 實際的資料,會超過A4:B6的三筆資料(而例子中只有列舉3筆)
(2) 實際想讀取的詞,也會超過E4,E5 的二個詞(而例子中只有列舉2個)

(如果可以,還是希望能有公式的解法><)

謝謝您的抽空幫忙。

TOP

Hello gaishutsusuru,

這個看起來, 很難用公式的方式達成, 就如pen來說, 有在同一個句子裡, 出現過2次,  但全都要count出來, 依我的理解, 這個只能用巨集的方式進行了!!
Thanks ~
新手上路,請多包涵。

TOP

回復 4# 劉大胃

Hello 劉大胃,

謝謝您的解說。

如果問題改成:在同一個儲存格裡,雖然出現過2次以上,但仍只要計入1次就好
(因此範例中,儲存格F4的pen的值就不要顯示4,而是顯示3就好了。)

請問這樣可以用公式達成嗎? 謝謝您。

TOP

隨意窩 "EXCEL迷"  blog  或https://blog.xuite.net/hcm19522/twblog
已收集8500篇 EXCEL函數

TOP

回復 6# hcm19522

hcm大大您好,


謝謝您的幫忙,公式可以用,太感謝您了。

(但實測後有個小小的問題,因為實際上資料可能會大於3筆,所以G3向右拉的話,要拉很多個儲存格才能在G3正確顯示。請問這個問題有方法可以解決嗎?)

TOP

Hello gaishutsusuru,

我的方法比較土法練鋼, 但~也是運用橫軸來做各別的判斷, 然後再Summary起來.
Thanks ~

F4=COUNTIFS($B$4B$6,"* " & E4 & "*")
G4=IF(LEN(H4 & I4 & J4)>0,LEFT(H4 & I4 & J4,LEN(H4 & I4 & J4)-1),"")
H4=IF(COUNTIFS(INDIRECT("$B" & H$3 & "B" & H$3),"* " & $E4 & "*")>0,INDIRECT("$A" & H$3) & ",","")
I4=IF(COUNTIFS(INDIRECT("$B" & I$3 & "B" & I$3),"* " & $E4 & "*")>0,INDIRECT("$A" & I$3) & ",","")
J4==IF(COUNTIFS(INDIRECT("$B" & J$3 & "B" & J$3),"* " & $E4 & "*")>0,INDIRECT("$A" & J$3) & ",","")
新手上路,請多包涵。

TOP

回復 7# gaishutsusuru
我是2007版 較新版本有指令  無須右拉
隨意窩 "EXCEL迷"  blog  或https://blog.xuite.net/hcm19522/twblog
已收集8500篇 EXCEL函數

TOP

回復 9# hcm19522

hcm大大您好,

請問您說的指令是什麼呢?有參考的資料嗎?
謝謝您

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題