志工服務時數累計自動化

更新於 發佈於 閱讀時間約 21 分鐘

前言:

某單位之志工別服務時數記入於EXCEL檔內,需再匯入衛福部志工系統,內容含有每個月志工服務時數,因志工多,檔案多,筆數多,人工作業費時又常累計算錯,故提此法改善,提高效率。

1. 作業流程

<1> 輸入志工名或不輸入

<2>輸入年份

<3>讀取檔案 ,選取所需項目

<3.1> 判斷名字若不是則跳走

<3.2> 判斷年份若不是則跳走

<3.3>若志工名不同. 列出累計

<3.4>對象rec. 列出項目

<3.5>對象rec. 計算時數

<4>檔案讀取終了,列出累計

<5>JOB是否繼續,不是終了

2. 作業說明

2.0 先判斷志工檔案之資料夾是否存在,不存在結束JOB

2.1 輸入欲查志工名或不輸入直接enter,此時代表欲查詢所有志工

輸入欲查詢志工名字,判斷是否存在,不存在需再輸入

2.2 輸入欲查查詢民國年份,或不輸入直接enter,此時轉換為今年之民國年數

若輸入值 需< 140 and > 100,否則錯誤

2.3 讀取對象目錄內所有檔案,對檔案內的每一筆rec內容,尋找對象項目,若 找到,則執行動作指令

1> 依據 輸入之參數當作引數,將符合之檔案找出

2> 再判斷檔案內容是否有欲查詢之志工內容,若有將該筆Rec.之所需項目取出

3> 判斷志工名,若與前筆不同時, 列出服務時數之累計

4> 將志工服務時數等項目列出

5> 依志工別將每個月之服務時數合計,並換算服務分數之合計,換算為時數單位

 

2.4 查詢結果顯示於瑩幕外,也產出檔案可供參考確認

2.5 查詢完後,可再繼續查詢其他志工

3. 實例說明 cmd name : VolH_Cal.cmd

3.1 來源檔案即是志工別時數紀錄檔,inputfile樣本之內容如下:

姓名,身分證字號,服務日期起,服務日期迄,服務項目,服務內容,服務時數-小時,服務時數-分鐘,受服務人次,交通費,誤餐費,服務區域,備註,匯入動作,序號,國外參與服務人次,國內參與服務人次
劉孟陽,XXXXX90432,1080101,1080131,60,3,6,0,10,0,0,,,A,,,
劉孟陽,XXXXX90432,1080201,1080228,60,3,6,0,10,0,0,,,A,,,
劉孟陽,XXXXX90432,1080301,1080331,60,3,8,0,10,0,0,,,A,,,
劉孟陽,XXXXX90432,1080401,1080430,60,3,6,0,10,0,0,,,A,,,
劉孟陽,XXXXX90432,1080501,1080531,60,3,2,0,0,0,0,,,A,,,
劉孟陽,XXXXX90432,1080601,1080630,60,3,6,0,10,0,0,,,A,,,


3.2 cmd執行時,輸入欲查詢之志工,年份

如下志工名:未輸入;

年份輸入 112

*** Inquiry of volunteer service hours ***

***

**1 Enter 志工名字:

***

**2 Enter 民國年(yyy) :112

*** Volunteer service time process 執行中...

執行結果顯示如下 :

*** Volunteer service time process 執行完了

* ** Inquiry of Volunteer志工:? 年份:112 ** * 查詢日:2024/07/21 週日 10:22:14
--- 姓名 服務日起 服務日迄 時數 分鐘 ---
* 劉孟陽 1120102 1120131 2 0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 邱鳳英 1120601 1120630 14 0
* 邱鳳英 1120701 1120731 10 30
* 邱鳳英 1120801 1120831 24 30
* 邱鳳英 1120901 1120930 17 30
* 邱鳳英 1121001 1121031 13 30
* 邱鳳英 1121101 1121130 14 0
* 邱鳳英 1121201 1121231 10 30
--------------- Sum Hours: 183 270 4.5 邱鳳英

* **-------------------------------------- 執行終了 on 2024/07/21 週日 10:22:15
**3 Do you inquire other Volunteer ? (Y/N) :

3.3 查詢產出之訊息內容,除了顯示於螢幕外,同時存入txt file

txt檔名: Inquiry_Volunteer_time.txt

本例 txt檔,只查詢四名志工,內容如下

* ** Inquiry of Volunteer志工:?  年份:112 ** *   查詢日:2024/07/21 週日 10:22:14 
--- 姓名 服務日起 服務日迄 時數 分鐘 ---
* 劉孟陽 1120102 1120131 2 0
* 劉孟陽 1120201 1120227 9 30
* 劉孟陽 1120301 1120331 8 0
* 劉孟陽 1120401 1120430 8 0
* 劉孟陽 1120501 1120531 4 0
* 劉孟陽 1120601 1120630 4 0
* 劉孟陽 1120701 1120731 4 0
* 劉孟陽 1120801 1120831 8 0
* 劉孟陽 1120901 1120930 8 0
* 劉孟陽 1121001 1121031 2 0
* 劉孟陽 1121101 1121130 8 0
* 劉孟陽 1121201 1121231 8 0
--------------- Sum Hours: 73 30 .5 劉孟陽
* 王瑛瑛 1120102 1120131 5 0
* 王瑛瑛 1120201 1120227 12 0
* 王瑛瑛 1120301 1120331 12 30
* 王瑛瑛 1120401 1120430 10 0
* 王瑛瑛 1120501 1120531 10 0
* 王瑛瑛 1120601 1120630 10 0
* 王瑛瑛 1120701 1120731 7 30
* 王瑛瑛 1120801 1120831 17 30
* 王瑛瑛 1120901 1120930 11 0
* 王瑛瑛 1121001 1121031 11 0
* 王瑛瑛 1121101 1121130 10 0
* 王瑛瑛 1121201 1121231 13 30
--------------- Sum Hours: 128 120 2.0 王瑛瑛
* 趙羅秀英 1120102 1120131 4 0
* 趙羅秀英 1120201 1120227 5 30
* 趙羅秀英 1120301 1120331 10 0
* 趙羅秀英 1120401 1120430 8 0
* 趙羅秀英 1120501 1120531 4 0
* 趙羅秀英 1120601 1120630 6 0
* 趙羅秀英 1120701 1120731 6 0
* 趙羅秀英 1120801 1120831 10 0
* 趙羅秀英 1120901 1120930 8 0
* 趙羅秀英 1121001 1121031 10 0
* 趙羅秀英 1121101 1121130 15 0
* 趙羅秀英 1121201 1121231 8 0
--------------- Sum Hours: 94 30 .5 趙羅秀英
* 邱鳳英 1120102 1120131 15 30
* 邱鳳英 1120201 1120227 16 0
* 邱鳳英 1120301 1120331 20 30
* 邱鳳英 1120401 1120430 10 30
* 邱鳳英 1120501 1120531 20 30
* 邱鳳英 1120601 1120630 14 0
* 邱鳳英 1120701 1120731 10 30
* 邱鳳英 1120801 1120831 24 30
* 邱鳳英 1120901 1120930 17 30
* 邱鳳英 1121001 1121031 13 30
* 邱鳳英 1121101 1121130 14 0
* 邱鳳英 1121201 1121231 10 30
--------------- Sum Hours: 183 270 4.5 邱鳳英

* **-------------------------------------- 執行終了 on 2024/07/21 週日 10:22:15

4. 改善前後

4.1 改善前 :

(1)須於資料夾內,尋找志工別檔案,手動一一打開檔案

(2) 開啟檔案後,找出該年度的筆數,一年12筆,人工計算整年度的服務時數,分數累計後換算為時單位

(3)多數個志工檔案,因人工作業,易手誤算錯,耗時費工,業務效率差

4.2 改善後: 

(1) 執行後,將資料夾內所有志工檔案,一個一個檔案開啟讀取資料,快速列出志工別服務時數明細及累計

(2) 查詢後的結果 螢幕顯示外,可產出txt檔案 ,提供問題原因查明確認用,或再轉作其他用途使用 

(3) 可一次查詢出全部志工,或志工個別查詢,亦能查詢過去年度之志工服務訊息,精準快速,效率佳 

5. 展開運用

(1) 志工服務時數若有誤植問題發生時,可快速查詢了解現況

(2) 其他單為各系統之資料檔案組,若有多檔或多筆資料,經常須找出資料利用場合時,可應用此法

6.設計編寫

6.1 cmd 語法使用說明

<1> 判斷資料夾是否存在

IF NOT EXIST D:\CSV ( echo ### ERROR : D:\CSV is not exist )

<2> FOR 指令內引數之運用,參考本件如下2種寫法寫法

For /f " tokens=3 delims=:," %%i in ('findstr /S /C:%PAR1% "%PARPath%\CSV\* " ') do (

IF %%i==%PAR1% SET ERRY=0)

IF NOT %ERRY%==0 ( echo ### 找不到志工名:%PAR1%\CSV ,請再輸入 )

說明:

讀取CSV資料夾內所有檔案,讀取該筆rec.內若有與定數%PAR1%相同值,則選出該筆rec,並將該REC內容以"," 作分隔之第三項目取出,以%%i 作變數名取出,提供 DO ()內之指令應用。


For /f " tokens=3,5-6,9-10 delims=:," %%i in ('findstr /S /C:A "%PARPath%\CSV\* " ') do (

CALL :ListSeleRec %%i %%j %%k %%l %%m)

說明:

讀取CSV資料夾內所有檔案,讀取該筆rec.內若有與定數相同之A值,則選出該筆rec,並將該REC內容以","或":" 作分隔之第3,5-6,9-10 共5項目取出,以%%i %%j %%k %%l %%m依序作變數名取出,提供 DO ()內之CALL指令應用,各引數值說明 i=志工姓名 j=服務日起 k=服務日迄 l=服務時數 m=服務分鐘。

<3> IF 可多層判斷,參考如下3種寫法

if A1==A1R (

cmd1-------

) else (

if A2==A2R (

cmd2-------

) else (

if A3==A3R (

cmd3-------

) else (

echo ###ERROR rec. )))

if %a% LSS 150 (echo 11) else ( if %a% GTR 100 ( echo 00 ))


if %a% LSS 150 ( if %a% GTR 100 (echo 00) )

6. 2 本例cmd 設計如下

cmd 檔名: VolH_Cal.cmd

@echo off
setlocal
SET PARPath=D:\志工\志工EXCEL
rem CD C:\Users\admin\Desktop\衛福部志工系統-志工時數

if not EXIST %PARPath%\CSV ( echo ###ERROR : %PARPath%\CSV is not exist & Goto EJob )
D:
CD %PARPath%
rem C:
echo.
echo *** Inquiry of volunteer service hours ***

:Enter_par1
:: --- PAR1 for 志工名字, PAR2 for 服務年分
set PAR1=?
set PAR2=?

echo ***
set /p PAR1="**1 Enter 志工名字:"
if %PAR1% == ? goto Enter_par2

SET ERRY=1
For /f " tokens=3 delims=:," %%i in ('findstr /S /C:%PAR1% "%PARPath%\CSV\* " ') do (
IF %%i==%PAR1% SET ERRY=0)
IF NOT %ERRY%==0 ( echo ### 找不到志工名:%PAR1%\CSV ,請再輸入
Goto Enter_par1 )

:Enter_par2
echo ***
set /p PAR2="**2 Enter 民國年(yyy) :"
if %PAR2% == ? ( SET /a PAR2=%DATE:~,4%-1911 )
set ERRY=0
if %PAR2% GTR 140 (set ERRY=1 ) else ( if %PAR2% LSS 100 ( set ERRY=1 ))
if %ERRY%==1 (
echo ###ERROR 輸入 %PAR2% ,民國年度不正確,請再輸入
goto Enter_par2 )

:Process_Begin
::----出力txt之表頭設定
echo. > Inquiry_Volunteer_time.txt
echo * ** Inquiry of Volunteer志工:%PAR1% 年份:%PAR2% ** * 查詢日:%DATE% %TIME:~,8% >> Inquiry_Volunteer_time.txt
echo --- 姓名 服務日起 服務日迄 時數 分鐘 --- >> Inquiry_Volunteer_time.txt
echo *** Volunteer service time process 執行中...

set B_VName=INIT_VName
SET /a SumH=0
SET /a SumM=0

rem ---Read rec. 無輸入志工名以 "."代替全部讀取
::-----讀取%PARPath%\CSV\* 內所有檔案,檢查檔案內有 A 的該筆資料列出,帶出5個引數----
::---i=姓名 j=服務日起 k=服務日迄 l=時數 m=分鐘
For /f " tokens=3,5-6,9-10 delims=:," %%i in ('findstr /S /C:A "%PARPath%\CSV\* " ') do (
CALL :ListSeleRec %%i %%j %%k %%l %%m)

::----列出合計志工別之服務時數
CALL :Sum_List

echo. >> Inquiry_Volunteer_time.txt
echo *** Volunteer service time process 執行完了
echo * **-------------------------------------- 執行終了 on %DATE% %TIME:~,8% >> Inquiry_Volunteer_time.txt
type Inquiry_Volunteer_time.txt

::----可再次重複執行
set /p PAR3="**3 Do you inquire other Volunteer ? (Y/N) :"
if /i %PAR3% == Y goto Enter_par1

pause ----
:EJob
:: end job
endlocal
exit

:ListSeleRec
::---讀取之年分判斷 yyy = PAR2
SET SByyy=%2
SET SEyyy=%3
IF %SByyy:~0,3% NEQ %PAR2% GOTO Exit_ListSeleRec
::---judg VName is PAR1=? or specify

IF NOT %PAR1%==? (IF NOT %PAR1%==%1 GOTO Exit_ListSeleRec)

::---judg B_Name NEQ C_Name
IF NOT %B_VName%==INIT_VName (IF NOT %B_VName%==%1 CALL :Sum_List)

::---judg S-yyymm and E-yyymm-----
IF %SByyy:~0,5% NEQ %SEyyy:~0,5% ( set ERRym=## ERRyyymm
) ELSE ( set ERRym= )

::---List out correct rec.
echo * %1 %2 %3 %4 %5 %ERRym%>>Inquiry_Volunteer_time.txt

::---時數合計
SET /a VH=%4
SET /a VM=%5
SET /a SumH=SumH+VH
SET /a SumM=SumM+VM

::---Move %1 to B_VName
SET B_VName=%1

:Exit_ListSeleRec
rem pause 2.5 list exit -----
EXIT /B

::-----讀取志工名變化時,列印出時數合計
:Sum_List
SET /a SumM_H=0
SET /a SumM_H=(SumM * 10) / 60
SET SumM_H=%SumM_H:~0,-1%.%SumM_H:~-1,1%

echo --------------- Sum Hours: %SumH% %SumM% %SumM_H% %B_VName%>>Inquiry_Volunteer_time.txt
SET /a SumH=0
SET /a SumM=0
rem pause 3.5 sum list---------
EXIT /B

--------by linct---------

留言
avatar-img
留言分享你的想法!
avatar-img
linct的沙龍
64會員
185內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
linct的沙龍的其他內容
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
看更多
你可能也想看
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
這篇文章探討如何使用 VBA 來設計一個隨機生成不重覆的排班表,解決依據每日、每站、每人進行的排班需求。文章分享了設定人員、站點及工作日的基本步驟,並使用 AI - ChatGPT 4o 做為互動,最終產生了滿意的結果,並提供了一個 VBA設計完成 的影片 以及 免費的檔案下載。
Thumbnail
這篇文章探討如何使用 VBA 來設計一個隨機生成不重覆的排班表,解決依據每日、每站、每人進行的排班需求。文章分享了設定人員、站點及工作日的基本步驟,並使用 AI - ChatGPT 4o 做為互動,最終產生了滿意的結果,並提供了一個 VBA設計完成 的影片 以及 免費的檔案下載。
Thumbnail
僅代表個人立場,抒發與分享工作相關的點點滴滴。
Thumbnail
僅代表個人立場,抒發與分享工作相關的點點滴滴。
Thumbnail
某單位志工服務時數記錄在檔案內,需匯入衛福部志工系統,但由於志工多、檔案多,進行人工計算耗時費工且常累計算錯。故提此法改善,提高效率。文章內容包含了作業流程、作業說明、實例說明、改善前後、展開運用和設計編寫。
Thumbnail
某單位志工服務時數記錄在檔案內,需匯入衛福部志工系統,但由於志工多、檔案多,進行人工計算耗時費工且常累計算錯。故提此法改善,提高效率。文章內容包含了作業流程、作業說明、實例說明、改善前後、展開運用和設計編寫。
Thumbnail
科技發達的現代,就要善用科技化產品,來處理店裡的大小事務!排假是每個企業都會遇到的問題,該如何安排才能同時符合員工以及現場的需求?
Thumbnail
科技發達的現代,就要善用科技化產品,來處理店裡的大小事務!排假是每個企業都會遇到的問題,該如何安排才能同時符合員工以及現場的需求?
Thumbnail
透過 Google Sheets 和 Make 打造專案任務自動提醒系統,當一到專案任務重要時程,系統便自動寄發專案任務的提醒信件或行事曆邀請,給專案任務負責人和相關團隊成員,確保專案進度如期完成,有效提升跨部門溝通協作效率!不再花費時間人工追蹤時程進度,釋放時間及專注力,專注在更重要的工作上!
Thumbnail
透過 Google Sheets 和 Make 打造專案任務自動提醒系統,當一到專案任務重要時程,系統便自動寄發專案任務的提醒信件或行事曆邀請,給專案任務負責人和相關團隊成員,確保專案進度如期完成,有效提升跨部門溝通協作效率!不再花費時間人工追蹤時程進度,釋放時間及專注力,專注在更重要的工作上!
Thumbnail
當你剛進入職場時,可能會覺得工作效率低,事情多且繁瑣。這篇文章提供了3種簡單的優化方法:模板化、流程化和清單化,可以幫助你顯著提高工作效率。
Thumbnail
當你剛進入職場時,可能會覺得工作效率低,事情多且繁瑣。這篇文章提供了3種簡單的優化方法:模板化、流程化和清單化,可以幫助你顯著提高工作效率。
Thumbnail
為了在有限的時間內獲得更多有效產出,不少團隊會選擇採用生產力工具,來幫助追蹤工作的進度和截止時間,確保團隊能提升工作效率、降低壓力,並騰出更多時間專注於更重要的任務。以下將推薦一些市面上好用的生產力工具,幫助團隊在各種情境下選擇適合的工具,讓團隊能保有最好的工作效率,以迎向各種挑戰。
Thumbnail
為了在有限的時間內獲得更多有效產出,不少團隊會選擇採用生產力工具,來幫助追蹤工作的進度和截止時間,確保團隊能提升工作效率、降低壓力,並騰出更多時間專注於更重要的任務。以下將推薦一些市面上好用的生產力工具,幫助團隊在各種情境下選擇適合的工具,讓團隊能保有最好的工作效率,以迎向各種挑戰。
Thumbnail
其實流程不是不能改,只是考量要長遠、考慮周到。財會工作就是搜集、整理、統計、分析資料,不是只「記帳」而已,任何流程的建立都是為了能便於分析,快速找到問題。如果沒有意識到這一點,就是連自己也輕看自己的工作了。
Thumbnail
其實流程不是不能改,只是考量要長遠、考慮周到。財會工作就是搜集、整理、統計、分析資料,不是只「記帳」而已,任何流程的建立都是為了能便於分析,快速找到問題。如果沒有意識到這一點,就是連自己也輕看自己的工作了。
Thumbnail
內容行事曆是一種策略工具,可以幫助職場人士預先規劃和組織其內容創作與發布。透過明確規劃每日、每週或每月的內容主題、格式、發布管道和目標受眾,業者可以更有效地吸引、參與和保留客戶。特別是在節日或特殊事件期間,內容行事曆能夠幫助業者提前準備,確保市場活動和宣傳內容的時效性和吸引力。
Thumbnail
內容行事曆是一種策略工具,可以幫助職場人士預先規劃和組織其內容創作與發布。透過明確規劃每日、每週或每月的內容主題、格式、發布管道和目標受眾,業者可以更有效地吸引、參與和保留客戶。特別是在節日或特殊事件期間,內容行事曆能夠幫助業者提前準備,確保市場活動和宣傳內容的時效性和吸引力。
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News