![](/img/trans.png)
[英]How do i get first date and Last date from month and year |Excel |Used Spinner for Month and Year|
[英]Get month and year from date cells Excel
我想從日期列中隔離month
和year
,但此列有兩種格式:
2011年5月8日00:59和08-05-2011 。
如果我想要一個新的列來隔離這個專欄中的月份和年份,例如: 05-2011 ,我應該怎么做?
試試這個公式(它會從A1
返回值,如果它不是一個日期):
=TEXT(A1,"mm-yyyy")
或者這個公式(它更嚴格,如果A1
不是日期,它將返回#VALUE
錯誤):
=TEXT(MONTH(A1),"00")&"-"&YEAR(A1)
請嘗試以下方法 :
=IF(LEN(C1)>10,VALUE(LEFT(C1,FIND(" ",C1,8))),IF(ISTEXT(C1),DATE(RIGHT(C1,4),MID(C1,4,2),LEFT(C1,2)),C1))
您似乎有三種主要可能的情況:
下面的ColumnA格式為General ,ColumnB格式為Date(我的默認設置)。 ColumnC也作為日期,但具有自定義格式以適合您的問題中提到的外觀。
關於文本格式是否是單元格內容的左對齊或右對齊的線索。
我建議對上述三種主要病例中的每一種進行單獨治療,因此使用= IF來區分它們。
這比其他任何一個都長,因此可以區分為長度大於10個字符, = LEN 。
在這種情況下,我們想要除了最后六個字符之外的所有字符,但為了增加靈活性(例如,如果時間元素包括秒數),我選擇從左邊而不是從右邊開始計數。 那么問題是月份名稱的長度可能不同,所以我選擇查找緊跟年份的空間以指示相關字符數的限制。
這與= FIND在C1
尋找一個空格( " "
),從左邊開始計算C1
內的第八個字符,假設在這種情況下,天數將表示為兩個字符,而月份則表示為三個或更多 。
由於= LEFT是一個字符串函數,它返回一個字符串,但是這可以轉換為值為VALUE的值 。
所以
=VALUE(LEFT(C1,FIND(" ",C1,8)))
在此示例中返回40671
- 在Excel的1900日期系統中 ,2011年5月5 日的日期序列號。
如果C1的長度不超過10個字符,我們仍然需要區分我選擇使用= ISTEXT的文本條目或值條目,以及if條件為TRUE的情況(對於C2)apply = DATE這需要三個參數,這里提供:
=RIGHT(C2,4)
采用C2的最后四個字符,因此在此示例中為2011
。
=MID(C2,4,2)
從第四個字符開始,取C2的下兩個字符,因此在此示例中為05
(表示May)。
=LEFT(C2,2))
采用C2的前兩個字符,因此在此示例中為08
(表示該月的第8天)。 日期不是文本函數,因此不需要包含在= VALUE中。
一起來
=DATE(RIGHT(C2,4),MID(C2,4,2),LEFT(C2,2))
在此示例中也返回40671
,但來自Case#1的不同輸入。
很簡單,因為已經是日期序列號,所以只是
=C2
足夠了。
將上述內容放在一起以涵蓋單個公式中的所有三種情況:
=IF(LEN(C1)>10,VALUE(LEFT(C1,FIND(" ",C1,8))),IF(ISTEXT(C1),DATE(RIGHT(C1,4),MID(C1,4,2),LEFT(C1,2)),C1))
在ColumnH中應用於ColumnF(格式化為適合OP)或一般格式(以顯示值為整數):
您可以右鍵單擊這些單元格,轉到格式,選擇自定義,然后鍵入mm yyyy。
我要求提供一個報告,按月顯示詳細信息,其中日期字段被格式化為日期和時間,我只是將日期列的格式更改為“常規”,然后在新列中使用以下公式,
=CONCATENATE(YEAR(C2),MONTH(C2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.