ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¨D§U°}¦C°ÝÃD

[µo°Ý] ¨D§U°}¦C°ÝÃD

¨D§U°}¦C°ÝÃD¡A¤p§Ì¹Á¸Õ¹L¦ýµLªk¥¿½T¤À²Õ°}¦C¥[Á`¡AÁٽШD¦U¦ì¤j¤j¨ó§U¡AÁÂÁ¡I
  1. Sub test()

  2.     Dim arr, i, j, k, m, n, p
  3.         arr = [A1].CurrentRegion.Offset(1).Resize(, 9).Value
  4.     ReDim Sum(UBound(arr, 2)), t(UBound(arr, 2))
  5.    
  6.    
  7.     For i = 1 To UBound(arr, 1) - 1
  8.    
  9.         If arr(i, 2) <> arr(i + 1, 2) Then
  10.         
  11.             For j = 6 To UBound(arr, 2)
  12.                 Sum(j) = Sum(j)
  13.                 Debug.Print Sum(j)
  14.             Next
  15.         Else
  16.             For j = 6 To UBound(arr, 2)
  17.                 Sum(j) = Sum(j) + arr(i, j)
  18.                 Debug.Print Sum(j)
  19.             Next

  20.         End If
  21.         
  22.             If arr(i + 1, 4) = "²Õ¦X§é¦©" Then
  23.                 For j = p + 1 To i - 1
  24.                     For k = 6 To UBound(arr, 2)
  25.                         n = Round(-arr(i + 1, k) / Sum(k) * arr(j, k), 0)
  26.                         arr(j, k) = arr(j, k) - n
  27.                         t(k) = t(k) + n
  28.                     Next
  29.                 Next
  30.             
  31.                 For k = 6 To UBound(arr, 2)
  32.                     arr(j, k) = arr(j, k) + arr(i + 1, k) + t(k)
  33.                     Sum(k) = 0: t(k) = 0
  34.                 Next
  35.             
  36.                 i = i + 1: p = i
  37.             End If
  38.     Next
  39.    
  40.     For i = 1 To UBound(arr, 1) - 1
  41.         If arr(i, 4) <> "²Õ¦X§é¦©" Then
  42.             m = m + 1
  43.             For j = 1 To UBound(arr, 2)
  44.                 arr(m, j) = arr(i, j)
  45.             Next
  46.         End If
  47.     Next
  48.    
  49.     With [l2]
  50.         .Resize(UBound(arr, 1), UBound(arr, 2)).ClearContents
  51.         .Resize(m).NumberFormatLocal = "yyyymmdd"
  52.         .Resize(m, UBound(arr, 2)) = arr
  53.     End With
  54.    
  55. End Sub
½Æ»s¥N½X

2020-10-06_190331.png (121.45 KB)

2020-10-06_190331.png

test1.rar (13.87 KB)

¼ÒÀÀ¤å¥ó

¦^´_ 1# K0l1CHEN6
¯à§_½Ð§A¦b¤W¶Ç¤@¦¸ÀÉ®× §Ú¤U¸ü¤U¨ÓÀɮ׬OÃaªº ¤£ª¾¹D¦ìÔ£  §Ú¤]·Q½m²ß¬Ý¬Ý ÁÂÁÂ

TOP

¦^´_ 2# °a¤ªºµ

¤p§Ì­è­è­«·s¤U¸ü¤U¨Ó¶}±Ò¬O¥¿±`ªº¡A­«·s¤W¶ÇªþÀɬ°ZIPÀ£ÁY¡A¦A³Â·Ð¤j¤j¤F·PÁ¡I

test1.zip (14.8 KB)

TOP

¥»©«³Ì«á¥Ñ °a¤ªºµ ©ó 2020-10-9 11:10 ½s¿è

¦^´_ 3# K0l1CHEN6

½Ð°Ý ¬O³o¼ËªºÅÞ¿è¶Ü? ©ÎµÛ §A§âµ²ªG ©ñ¤W¨Ó §Ú¤£¤Ó©ú¥Õ ©êºp >"<  
²Õ¦X§é¦© ¤½¦¡ ¬O«ç»òºâ §Ú¤£©ú¥Õ


javascript:;

1009.png (17.16 KB)

1009.png

TOP

¦^´_ 4# °a¤ªºµ


¤j¤j±z¦n¡A¥H¨ç¼Æªº¤½¦¡§e²{ªº¸Ü¡A¥Î654856³o²Õ¬°¨Ò¡A
»Ý­n§â¥¼µ|³æ»ù¡B¥¼µ|Á`»ù¡BÁ`µ|ÃB©M§tµ|Á`ª÷ÃB«Ì°£"²Õ¦X§é¦©"ªºª÷ÃB¥ý¦U§O¥[Á`
¦A¥H¨C­Ó­È¥h°£¥HÁ`ª÷ÃB­pºâ¥e¤ñ

TOP

¦^´_ 4# °a¤ªºµ


©çÁ¼g±o¤£²M·¡¡A¤p§Ì¬O·Q­n§e²{

¥ý±N²Õ§O654856ªº¥¼µ|³æ»ù¡B¥¼µ|Á`»ù¡BÁ`µ|ÃB©M§tµ|Á`ª÷ÃB«Ì°£²Õ¦X§é¦©ªºª÷ÃB¥[Á`¡A
1. ¥H¥¼µ|³æ»ù¨ºÄ欰¨Ò¡A¾ãÄæ¥[Á`ª÷ÃB¬°28762
2. ¤À§O­pºâ³æ¶µ¥e¤ñ¡A¥HF2¬°¨Ò¡A6238/28762=0.217´N¬O21.7%
3. µM«á¥Î¨ºÄ檺§é¦©ª÷ÃB-285*0.217=-61.845¡A´N¥i¥Hºâ¥X§é¦©ª÷ÃB¥e¤ñ
4. ¦A±NÁÙ¨S­pºâ§é¦©ªº6238+(-61.845)=6176.155
5. ¤À§O­pºâ¨C¶µ¦©°£§é¦©ª÷ÃB«á¡A³Ì«á¦A±N§é¦©ª÷ÃB¨º¦æ§R°£

TOP

¦^´_ 6# K0l1CHEN6

¦bExcel Home¤wµo°Ý¦n´X³q, µL¤H¦^À³,
À³¬O¨S¤HÀ´·N«ä,

¦³¼Æ¶qÄæ, ©Ò¥H"³æ»ù"¨Ì¤ñ²v¦©¬O¤£²Å¦XÅ޿誺,
°Ñ¦ÒÀÉ:
test1-1.rar (11.31 KB)

TOP

¦^´_  K0l1CHEN6

¦bExcel Home¤wµo°Ý¦n´X³q, µL¤H¦^À³,
À³¬O¨S¤HÀ´·N«ä,

¦³¼Æ¶qÄæ, ©Ò¥H"³æ»ù"¨Ì¤ñ ...
­ã´£³¡ªL µoªí©ó 2020-10-10 11:52



´£¨Ñªº¸ê®Æ¬°¥ý«e½m²ßªºÀɮסA¬G¼Æ¦r¦³¥X¤J¡AÅý¤j¤j»~¸Ñ¯uªº¬O«D±`©êºp¡I
¦]Excel Home¸Ì¤w¸g¦³¤j¤jÀ°¤p§Ì¸Ñµª³Ì­«­nªº³¡¤À
¦ý°w¹ï¦P²Õ¤À§O­pºâªº¸Ü¡A¤p§Ìªº²z¸Ñ¬O¤£¬O´N¬O­n¦A²£¥Í¤@­Ó°}¦C¨Ó¥h³æ¿W­pºâ¡H

TOP

¦^´_  K0l1CHEN6

¦bExcel Home¤wµo°Ý¦n´X³q, µL¤H¦^À³,
À³¬O¨S¤HÀ´·N«ä,

¦³¼Æ¶qÄæ, ©Ò¥H"³æ»ù"¨Ì¤ñ ...
­ã´£³¡ªL µoªí©ó 2020-10-10 11:52





¤p§Ì¦¨¥\¹Á¸Õ²¤¹L²Õ¦X§é¦©°µ¥[Á`¡A¤w¸g¤ÀÂ÷¨â­Ó¼Æ²Õ
¤ñ¸û¦³¹Á¸Õ¤£¤Fªº¬O¦p¦ó±N¨â­Ó°}¦C¥h°µ¤ñ¹ï
  1. Sub test1()

  2.     Dim arr, brr(), t
  3.     Set d = CreateObject("scripting.dictionary")
  4.     arr = [A1].CurrentRegion
  5.     ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2)), t(UBound(arr, 2))
  6.    
  7.     For i = 2 To UBound(arr)
  8.         If Not d.exists(arr(i, 2)) Then
  9.             k = k + 1
  10.             d(arr(i, 2)) = k
  11.             
  12.             For j = 1 To UBound(arr, 2)
  13.                 brr(k, j) = arr(i, j)
  14.             Next
  15.         Else
  16.             r = d(arr(i, 2))
  17.             
  18.             For j = 6 To UBound(arr, 2)
  19.                 If arr(i, j) < 0 Then
  20.                 Else
  21.                     brr(r, j) = brr(r, j) + arr(i, j)
  22.                 End If
  23.             Next
  24.         End If
  25.     Next

  26.     For i = 1 To UBound(arr, 1) - 1
  27.         If arr(i, 4) <> "²Õ¦X§é¦©" Then
  28.             m = m + 1
  29.             
  30.             For j = 1 To UBound(arr, 2)
  31.                 arr(m, j) = arr(i, j)
  32.             Next
  33.             
  34.         End If
  35.     Next
  36.    
  37.     With [K1]
  38.         .Resize(UBound(arr, 1), UBound(arr, 2)).ClearContents
  39.         .Resize(m).NumberFormatLocal = "yyyymmdd"
  40.         .Resize(m, UBound(arr, 2)) = arr
  41.     End With
  42.    
  43.     [U2].Resize(k, 9) = brr
  44.    
  45. End Sub
½Æ»s¥N½X

TOP

Sub TEST_A01()
Dim Arr, xD, i&, j%, N&, T$, U&
Set xD = CreateObject("Scripting.Dictionary")
Sheets("¤u§@ªí2").UsedRange.EntireRow.Delete
Arr = Range([¤u§@ªí1!I1], [¤u§@ªí1!A1].Cells(Rows.Count, 1).End(xlUp))
For i = 2 To UBound(Arr)
    T = Arr(i, 2) & "|"
    If Arr(i, 4) = "²Õ¦X§é¦©" Then T = T & "S"
    For j = 6 To 9:  xD(T & j) = xD(T & j) + Arr(i, j):  Next
Next i
'-----------------------------------
For i = 2 To UBound(Arr)
    If Arr(i, 4) = "²Õ¦X§é¦©" Then GoTo i01
    T = Arr(i, 2) & "|"
    N = N + 1
    For j = 1 To 5: Arr(N + 1, j) = Arr(i, j): Next
    For j = 6 To 9
        Arr(N + 1, j) = Arr(i, j) + Arr(i, j) * (xD(T & "S" & j) / xD(T & j))
    Next j
i01: Next i
'-----------------------------------
[¤u§@ªí2!A1:I1].Resize(N + 1) = Arr
End Sub

test1-A01.rar (16.61 KB)

¤p¼Æ¤£¶i¦ì, ­Y­n¶i¦ì, ¥i¯à¨ä¥[Á`«á¦³¦]¶i1©Î°h1©Ò²£¥Íªº»~®t


'=====================================

TOP

        ÀR«ä¦Û¦b : §g¤l¥ß«í§Ó¡A¤p¤H«í¥ß§Ó¡C
ªð¦^¦Cªí ¤W¤@¥DÃD