有沒有適合的公式可以依照已經抓出年月日的年資,
像紅框處帶出各年資的人數(現在都人工填寫)
爬很多文都是只抓前面"年"但都沒抓後面的月日
懇請各位大神解惑!!!
剛有大神私底下給我答案了~
提供有需要的人索取
https://mega.nz/#!tI4ACSjA!T9ytpyE3OjCMMLWvo-9eXKZveTB_ab1aim-v_biEub0
不太會Excel,但是覺得蠻有意思的,所以來試試看,用總月份來算不知道對不對。
https://drive.google.com/open?id=1gBDqPYEkc0MdJEmfBArlqNGePwqgDlrq
我用SQL寫的,不知對你有沒有用,僅供參考
CREATE PROCEDURE [dbo].[SP_GetEmpYears]
AS
BEGIN
DECLARE @TOYEAR AS VARCHAR(10)
SET @TOYEAR = CAST(YEAR(GETDATE()) AS VARCHAR)+ '/4/30' -- 實際當年的4月30日止
DECLARE @LASTDAY AS DATETIME
SET @LASTDAY = CONVERT(VARCHAR(10), @TOYEAR ,111)
DECLARE @MINYEARS AS INT
SET @MINYEARS = 5 --最少五年以上,五一勞動箱時要頒資深員工獎用的
SELECT
EMPNO 工號,
EMPCNAME 姓名,
HIREDDATE 到職日 ,
floor(CAST(DATEDIFF(MONTH, HIREDDATE,@LASTDAY) AS FLOAT) /12) 實際年資,
floor(CAST(DATEDIFF(MONTH, HIREDDATE,@LASTDAY) AS FLOAT) /60)*5 五的倍數
FROM HR.DBO.EMPLOYEE
WHERE
QUITDATE IS NULL AND DATEDIFF(YEAR, HIREDDATE,@LASTDAY)>@MINYEARS
and CAST(floor(CAST(DATEDIFF(MONTH, HIREDDATE,@LASTDAY) AS FLOAT) /12) AS INT) %5 = 0
ORDER BY HIREDDATE
END
年資6、7、8、9,11、12.......不在5的倍數年的,請繼續加油
感謝您回答但我需要EXCEl公式,一般user沒辦法操作SQL
我知道,但很明顯DATEDIF不能用了(office 2016)
所以我才做成stored procedure ,提供給使用者直接以excel查詢,或是你做成網頁或匯出excel.........blahblahblah..........
我用Excel 2016 MSO (16.0.4849.1000)64位元Datedif
還是可以用。Datedif
算是隱藏版函數,Excel內建的說明中找不到,要去微軟的網站https://support.office.com/zh-tw/article/datedif-函數-25dba1a4-2812-480b-84dd-8b32a451b35c 才有說明。
但無法在我現在手邊的EXCEL2016上使用,不管參數怎麼改,都會出現#NAME?的錯誤
Y、M、D 要加上""
"Y"
檔案已經失效了,沒辦法看。
建議把年、月換算成單一值,ex.8年6月=>8.5年,再用countifs,算出各年資區間的人數。
ex.一年以上未滿兩年,A欄為年資
=COUNTIFS(A:A,">=1",A:A,"<2")