返回列表 上一主題 發帖

[發問] 含有文字的加總

Hello, 准大

了解! 謝謝你的教導.
新手上路,請多包涵。

TOP

回復 18# 劉大胃

很感謝你的提問,讓我也有收獲,也謝謝你的公式,我會好好再研究,感謝....

TOP

回復 11# 准提部林

請問准大,
我有另一個的含文字加總    含文字加總II.rar (12.94 KB)
B4:AF10為加班時數,因是公用表格,各自填入自己的加班時數,設定好的格式常會被變動       
依AJ1指定的值,加總A4:A10=AJ1且B4:AF10,所有含"加"的數值       
要如何使用函數加總?
有些是文字"加",有些是格式化的"加",但只要看到"加",就視為要加總的對象       
EX: AJ1=P3時,含"加"的數值為20

TOP

回復 23# PJChen

用vba自訂函數,
P3應為21(其中有格式的加1)
Xl0000175.rar (14.66 KB)

TOP

回復 24# 准提部林

准大好,
因為公用表格不能使用VBA程式,所以我改了另一作法,
將檔名設定在"加班計算.xlsx"的"加班"工作表O1儲存格中,
所有需要統計的資料都在"加班"工作表內,因為使用了跨檔案,
請問程式要如何修改可以套用在D欄位中?
另外來源檔"2020年假表"常有人任意變動格式,
不過人員一律放在A欄,日期欄則一律是第二列,一直到每月的日期結束
含文字加總II_vba自定義函數.rar (86.72 KB)

TOP

回復 25# PJChen

我的版本檔案開不了,
讓別人來做吧~~

TOP

回復 26# 准提部林

直接用准大提供的Function程式
D欄公式=加班數(INDIRECT("'["&fl&"]"&$A2&"'!"&"A4:AF12"),J$1)下拉

TOP

回復 27# jcchiang

可以了!感謝

TOP

回復 24# 准提部林


    謝謝前輩
後學學習到 Range.Text 屬性與區域存格相對位置核取...等
心得註解如下,請前輩再指導

執行結果:


Function 加班數(Rng As Range, S1$) As Long
'↑加班數()自訂函數,Rng變數是儲存格變數,S1是字串變數,函數回傳值是長整數
Dim R&, S&, C%, V%, T$
'↑宣告變數:(R,S)是長整數變數,(C,V)是短整數變數,T是字串變數
If S1 = "" Then Exit Function
'↑如果S1這字串變數是空字元!,就結束自訂函數
For R = 1 To Rng.Rows.Count
'↑設順迴圈!R從1到 Rng變數的列數
    If Rng(R, 1) <> S1 Then GoTo r01
    '↑如果Rng變數裡的相對R迴圈列第1欄儲存格值不是 S1變數值
For C = 2 To Rng.Columns.Count
'↑設順迴圈!C從2到 Rng變數的欄數
    T = Rng(R, C).Text
    '↑令T這字串變數是 Rng變數裡的相對R迴圈列第C迴圈欄儲存格值
    '.Text:傳回指定之物件的格式化文字
    'https://learn.microsoft.com/zh-tw/office/vba/api/excel.range.text

    V = InStr(T, "加")
    '↑令V這短整數變數是 "加"字串在 T變數裡的字元位置
    If V > 0 Then 加班數 = 加班數 + Val(Mid(T, V + 1))
    '↑如果V變數 >0!就令 加班數()回傳:
    '加班數()+ 增量值
    '增量值:T變數取第(V變數+1)字開始的右側全部字元,再轉化為數字值

Next C
r01: Next R
End Function
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 【行善要及時】行善要及時,功德要持續。如燒開水一般,未燒開之前千萬不要停熄火候,否則重來就太費事了。
返回列表 上一主題