最大限度地提供一个单元格,但溢出在其他单元格中结束

在Excel中,我在$34,009,345的单元格中有一个值。 我试图让它分裂在三个单元格不均匀。 但前两个单元格有最大值。 我需要第一个单元的最大值为$4,500,000 ,第二个单元的最大值为$3,000,000 ,然后第三个单元没有最大值,这是所有溢出的地方。 当我input$34,009,345时,显然有一种方法可以分割这三个单元格。 帮帮我?

所以你想要的东西如:

  ABCD ------------------------------------------------------------------- $34,009,345 $4,500,000 $3,000,000 $26,509,345 $34,009,345 =MIN(A1,4500000) =MIN(A1-B1,3000000) =MAX(0,A1-B1-C1) 

B中的公式将抓住A或者450万中的较小值:

 =MIN(A1,4500000) 

下一个公式检查A到B的差异,并使用这个数字,或者是300万,以最小者为准:

 =MIN(A1-B1,3000000) 

那么我们可以把差异转储到D中(如果B和C处理所有事情,则为0):

 =MAX(0,A1-B1-C1) 

我会用这个问题的macros观方法:)

 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo errH Dim dblAmount As Double Const sCellAddress1 As String = "A1" ' <- 1st cell where you enter the nuber Const sCellAddress2 As String = "B1" ' <- 2nd cell Const sCellAddress3 As String = "C1" ' <- 3rd cell Const MaxCell1 As Double = 4500000 ' <- Max value for the 1st cell Const MaxCell2 As Double = 3000000 ' <- Max value for the 2nd cell If Not Intersect(Target, Me.Range(sCellAddress1)) Is Nothing Then Application.EnableEvents = False 'The main function Me.Range(sCellAddress2).Value = vbNullString Me.Range(sCellAddress3).Value = vbNullString dblAmount = Target.Value If dblAmount > MaxCell1 Then Me.Range(sCellAddress1).Value = MaxCell1 dblAmount = dblAmount - MaxCell1 Me.Range(sCellAddress2).Value = dblAmount If dblAmount > MaxCell2 Then Me.Range(sCellAddress2).Value = MaxCell2 dblAmount = dblAmount - MaxCell2 Me.Range(sCellAddress3).Value = dblAmount End If End If End If errH: If Err.Number <> 0 Then MsgBox Err.Number & " " & Err.Description, , "Error" Application.EnableEvents = True End Sub 

安装:打开VBE>在工程窗口中打开工作表模块>粘贴代码。
用法:在第一个指定的单元格中input一个值( A1是默认值;您可以在代码中更改它)。