首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算月数,部分月数

问计算月数,部分月数
EN

Stack Overflow用户
提问于 2018-03-13 18:22:18
回答 1查看 48关注 0票数 1

我需要的是计算一个月的可用性(WTF),并将它们除以所选月份的天数。

公式应为:WTF/每月总天数*每月可用天数=结果

例如:

代码语言:javascript
复制
period: 07-09-2017 - 15-11-2017
WTF: 0.5

应该会导致:

代码语言:javascript
复制
September: 0,4000
October:   0,5000
November:  0,2500

我的问题是,当周期超过2个月时,如何计算结果。我不知道如何计算第一个月和上个月之间的月份的结果,所以在这种情况下,10月份。

EN

回答 1

Stack Overflow用户

发布于 2018-03-13 19:14:25

这里有一些代码可以帮助您入门。它在一个字符串中输出值,但您可以轻松地将其输出到三个不同的单元格:

代码语言:javascript
复制
Public Function OutputWork(first As Date, last As Date, wtf As Double)
    Dim worked As Object, total As Object
    Dim i As Date
    Dim j As Long
    Dim mnth As String, key As String
    Dim v As Variant

    Set worked = CreateObject("Scripting.Dictionary")
    Set total = CreateObject("Scripting.Dictionary")

    For i = WorksheetFunction.EoMonth(first, -1) + 1 To WorksheetFunction.EoMonth(last, 0)
        mnth = Format(i, "mmmm")
        If Not total.exists(mnth) Then
            total.Add key:=mnth, Item:=1
        Else: total.Item(mnth) = total.Item(mnth) + 1
        End If

        If Not worked.exists(mnth) Then worked.Add key:=mnth, Item:=0
        If i >= first And i <= last Then worked.Item(mnth) = worked.Item(mnth) + 1
    Next i

    ReDim v(LBound(total.keys()) To UBound(total.keys()))
    For j = LBound(v) To UBound(v)
        key = total.keys()(j)
        v(j) = key & ":" & wtf / total.Item(key) * worked.Item(key)
    Next j

    OutputWork = Join(v, ", ")
End Function

像这样使用工作表上的函数:

代码语言:javascript
复制
=OutputWork(<start>,<end>,<WTF>)

​

​

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49253659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档