您还可以使用Windows Excel 2010和Office 365 Excel中提供的Power Query获取图片输出
另请注意#"提取的月份名称"
步骤。这会创建您在结果表中看到的文本字符串。如果您希望这是一个“真实日期”,请从应用步骤窗口中删除最后一步,并在Excel工作表上为您想要的外观格式化该列
M代码
let
//Read in data
//change table name in next line to reflect actual table name in workbook
Source = Excel.CurrentWorkbook(){[Name="Table16"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,
{{"Name", type text}, {"Division", type text}, {"Start Date", type date}, {"End Date", type date}}),
//create list of dates by month with intervening months (between start and end) = first of the months
#"Added Custom" = Table.AddColumn(#"Changed Type", "Month/Year", each
let
StartDate = #date(Date.Year([Start Date]),Date.Month([Start Date]),1),
EndDate = [End Date],
mnthList = List.Generate(
()=>StartDate,
each _ <= EndDate,
each Date.AddMonths(_, 1)),
//Replace first and last months in the list with the actual date
replLast = List.ReplaceRange(mnthList,List.Count(mnthList)-1,1,{[End Date]}),
replFirst = List.ReplaceRange(replLast,0,1,{[Start Date]})
in
replFirst),
//Remove unneeded columns and move the Month/Year column to the beginning
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Start Date", "End Date"}),
#"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"Month/Year", "Name", "Division"}),
//expand the month list into new rows -- one row for each month
#"Expanded mnthList" = Table.ExpandListColumn(#"Reordered Columns", "Month/Year"),
//Extract the month name and year as a string for display
//Can omit these steps if you want actual months in the cells
// in which case you would format them on the worksheet
#"Extracted Month Name" = Table.TransformColumns(#"Expanded mnthList", {
{"Month/Year", each Date.MonthName(_) & " " & Text.From(Date.Year(_)), type text}})
in
#"Extracted Month Name"
我正在尝试:
Option Explicit
Option Base 1
Private Const NONSENSE As String = "Nonsense"
Public Sub F()
Dim I As Date
Dim S As String
Dim SwitchMonth As Boolean
Dim M As Integer
Dim D1 As Date
Dim D2 As Date
D1 = "10.10.1990"
D2 = "01.12.1991"
If (D1 > D2) Then
MsgBox ("Failure!")
Exit Sub
End If
M = Month(D1)
MsgBox (OnMonth(M, Year(D1)))
SwitchMonth = False
For I = D1 To D2 Step 1
If Month(I) <> M Then
M = Month(I)
MsgBox (OnMonth(M, Year(I)))
End If
Next
End Sub
Public Function OnMonth(ByVal M As Integer, ByVal Y As Integer) As String
If (M < 1) Or (M > 12) Then
OnMonth = NONSENSE
End If
Select Case M
Case 1
OnMonth = "January"
Case 2
OnMonth = "February"
Case 3
OnMonth = "March"
Case 4
OnMonth = "April"
Case 5
OnMonth = "May"
Case 6
OnMonth = "June"
Case 7
OnMonth = "July"
Case 8
OnMonth = "August"
Case 9
OnMonth = "September"
Case 10
OnMonth = "October"
Case 11
OnMonth = "November"
Case 12
OnMonth = "December"
End Select
OnMonth = OnMonth & " " & Y
End Function
此代码假定原始数据位于表1中,从A1开始,并将结果放入H:J列中。
所有这些都可以根据需要进行调整。
Sub ExpandThings()
Dim arrDataIn As Variant
Dim arrDataOut As Variant
Dim idxRow As Long
Dim cnt As Long
Dim idxMonth As Long
With Sheets("Sheet1").Range("A1").CurrentRegion
arrDataIn = .Offset(1).Resize(.Rows.Count - 1)
ReDim arrDataOut(1 To 3, 1 To Application.Max(.Columns(4)) - Application.Min(.Columns(3)))
End With
For idxRow = LBound(arrDataIn, 1) To UBound(arrDataIn, 1)
For idxMonth = 0 To DateDiff("m", arrDataIn(idxRow, 3), arrDataIn(idxRow, 4))
cnt = cnt + 1
arrDataOut(1, cnt) = Format(DateAdd("m", idxMonth, arrDataIn(idxRow, 3)), "mmm yyyy")
arrDataOut(2, cnt) = arrDataIn(idxRow, 1)
arrDataOut(3, cnt) = arrDataIn(idxRow, 2)
Next idxMonth
Next idxRow
If cnt > 0 Then
ReDim Preserve arrDataOut(1 To 3, 1 To cnt)
Range("H1").Resize(, 3).Value = Array("Month/Name", "Name", "Div")
Range("H2").Resize(cnt, 3).Value = Application.Transpose(arrDataOut)
End If
End Sub
问题内容: 我需要Java中本月的开始日期和结束日期。当JSP页面加载了当前月份时,它将自动计算该月份的开始和结束日期。它应该与年份和月份无关。也就是说某个月有31天或30天或28天。这也应该满足a年。你能帮我吗? 例如,如果我在列表框中选择“五月”,则需要开始日期为1,结束日期为31。 问题答案: 你去了: PS:类只是两个值的一对。
问题内容: 如何从数据库中获取查询的开始日期和结束日期。 谢谢, 问题答案: http://sqltutorials.blogspot.com/2007/06/sql-first-and-last-day-of- month.html 唯一没有涉及的是如何获取当前日期…请参阅rexem的帖子。
简要背景:我在保险业工作,出于各种税收原因,我们通常需要知道雇员一年受雇多少个月,以及他们获得保险的月份。雇员在受雇60天后的第一个月有资格获得保险。 获取资格日期很简单。从技术上讲,获取受雇和提供的月数很简单……直到我遇到跨越多年的情况。为了我的报告的目的,我只需要知道2017年的数据。例如,R3在2017年只受雇两个月,所以我需要“#Mon Emp”为2。我目前使用的是=DATEDIF(F2,
问题内容: 以下是我用来计算给定月份的星期开始日期和结束日期的代码。假设周开始日期为MONDAY,周结束日期为SUNDAY。例如,2013年1月将有5个星期。如果月份从星期日开始- 忽略该天 2013年1月第一周-2012年12月31日至2013年1月6日第二周-2013年1月7日至2013年1月13日第三周-2013年1月14日至2013年1月20日第四周-21日-2013至2013年1月27日
问题内容: String febSt = “02/01/2014” ; String febEnd = “02/28/2014” ; 上面的代码是我的输入,我需要“ 03/01/2014”和“ 03/31/2014”作为输出。我尝试了更多代码,也使用了日历功能,但没有结果。从该程序中,我需要下个月的开始和结束日期。 我尝试了更多示例输入,如果我将这些日期作为下个月2月返回的输入,将在2月,4月,6
我试图找出明星日期和结束日期的员工时钟。以下是我所掌握的数据示例。 需要输出: 我必须根据eventtime和activitycode找到此人的开始日期和结束日期。开始日期将是事件时间列,我必须从行中下一个事件时间的同一列计算结束日期。 我曾尝试在T-SQL中使用lead函数,但它并没有给出我想要的结果。 如果有人知道如何处理这个问题,我会非常感激。