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

¨D¸Ñ¡G¦h­«¹ï¤ñ¦X¦}¸ê®Æ

¨D¸Ñ¡G¦h­«¹ï¤ñ¦X¦}¸ê®Æ

¥»©«³Ì«á¥Ñ 198188 ©ó 2024-5-27 14:14 ½s¿è



Data ªí内 °µ¸ê®Æ¤ÀªR¡A²¾°£­«½Æ¶µ ¡]ÄæB, D, E ¤T­Ó³£¤@­P¡^¡A¦ý¬O»Ý­n¥[Á`ÄæF & Äæ H
Á|¨Ò¡G
¤U­±ªº¼Æ¾Ú¸ê®Æ¡G
   Äæ B        Äæ C        Äæ D         Äæ E              Äæ F        Äæ G        Äæ H
FC120                     912.5         2425.6                 1        2.213         2.213
FC120                     912.5         2425.6                 2        2.213         4.426
FC120                     912.5         2425.6                 1        2.213         2.213
FC149                    1204.0         2425.6                 2        2.920         5.840
FC120                    1197.0         2425.6                 1        2.903         2.903

µ²ªG¡G
Äæ B              Äæ C            Äæ D                Äæ E                 Äæ F          Äæ G               Äæ H
FC120                          912.5             2425.6                4                 2.213              8.852
FC149                        1204.0             2425.6                2                 2.920             5.840
FC120                        1197.0             2425.6                1                 2.903             2.903

sample.rar (19.22 KB)

¥»©«³Ì«á¥Ñ hugh0620 ©ó 2024-5-30 10:06 ½s¿è

¦^´_ 1# 198188

¦³¤ñ¹ï§AÀɮפ¤ªº Data ¸ò Result ªº¸ê®Æ¡C
¦pªG¶È¬O¤@¦¸©Êªº¸ê®Æ¡A¥i¥H°µ¥H¤U³B²z¡C
¹Ï¸¹¡G¥Îexcelµøµ¡¤W"¸ê®Æ"¡B"²¾°£­«½Æ"¡A¥i¥H±o¨ì¨Cµ§¹Ï¸¹±o°ß¤@¡C
ªø¡B¼e/¦Ì­«¡B­±¿n/­«¶q (M² / kg)ªº³æ­p¡B¡AData¸ò Result ¬O¤@¼Ëªº¡A©Ò¥H¡A¥i¥H¥ÎVlookup´N¥i¥H±o¨ì¡C
ex¡Bªø D10  =VLOOKUP(B10,Data!$B$12:$G$1000,3,FALSE)

FÄæ¦ì"¼Æ¶q"¡BHÄæ¦ì"¤p­p¸ê®Æ"¡A¥i¥H¥ÎSumif¶i¦æ²Î­p¡C
EX¡B ¼Æ¶q F10  =SUMIF(Data!$B$12:$B$1000,Result!B10,Data!$F$12:$F$1000)

¦pªG§A­nVBA³B²z¡A¥i¥H¿ý¤@¬q"¹Ï¸¹""²¾°£­«½Æ"ªºµ{¦¡½X¡A¥H¤U¬O¥ÎChatGPT¶]¥X¨Óªºµ{¦¡½X
  1. Sub CopyUniqueValues()
  2.     Dim ws1 As Worksheet
  3.     Dim ws2 As Worksheet
  4.     Dim rng As Range
  5.     Dim cell As Range
  6.     Dim dict As Object
  7.     Dim i As Long
  8.    
  9.     ' ³]©w¤u§@ªí
  10.     Set ws1 = ThisWorkbook.Sheets("Data")
  11.     Set ws2 = ThisWorkbook.Sheets("Result")
  12.    
  13.     ' ³]©w½d³ò
  14.     Set rng = ws1.Range("B12:B10000")
  15.    
  16.     ' ¨Ï¥Î¦r¨å¨ÓÀx¦s°ß¤@­È
  17.     Set dict = CreateObject("Scripting.Dictionary")
  18.    
  19.     ' ²MªÅResultªºBÄæ¦ì
  20.     ws2.Range("B10:B10000").ClearContents
  21.    
  22.     ' ¹M¾ú½d³ò¤¤ªº¨C­ÓÀx¦s®æ¡A¨Ã±N°ß¤@­È²K¥[¨ì¦r¨å¤¤
  23.     For Each cell In rng
  24.         If Not dict.exists(cell.Value) And cell.Value <> "" Then
  25.             dict.Add cell.Value, Nothing
  26.         End If
  27.     Next cell
  28.    
  29.     ' ±N°ß¤@­È¼g¤J¤u§@ªí2ªºAÄæ¦ì
  30.     i = 10
  31.     For Each key In dict.keys
  32.         ws2.Cells(i, 2).Value = key
  33.         i = i + 1
  34.     Next key
  35. ' 对¤u§@ªí2ªºB¦C进¦æ±Æ§Ç
  36. ws2.Range("B10:B" & i - 1).Sort Key1:=ws2.Range("B9"), Order1:=xlAscending, Header:=xlNo
  37. End Sub
½Æ»s¥N½X
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

¥»©«³Ì«á¥Ñ 198188 ©ó 2024-5-30 10:55 ½s¿è
¦^´_  198188

¦³¤ñ¹ï§AÀɮפ¤ªº Data ¸ò Result ªº¸ê®Æ¡C
¦pªG¶È¬O¤@¦¸©Êªº¸ê®Æ¡A¥i¥H°µ¥H¤U³B²z¡C
¹Ï ...
hugh0620 µoªí©ó 2024-5-30 09:43


ÁÂÁ«e½ú«ü¾É¡C
¦ý¬O³o­Ó¤£¬O³æ¤@­«½Æ²¾°£¡A¬O¤T­Ó±ø¥ó­«½Æ²¾°£¡C ¡]¹Ï¸¹¡Aªø¡A¼e¡^³o¤T­Ó¸ê®Æ³£¬Û¦Pªº¤~­«½Æ²¾°£¡C
§Ú´N¥Î¤F¤ñ¸ûÁc½Æªº¨BÆJ¡G
1 ±NData ¼Æ¾Ú ®Ú¾Ú ¡]¹Ï¸¹¡Aªø¡A¼e¡^¨Ó±Æ§Ç
2 ¦A³v¦æ¸ò«e¤@¦æ¹ï¤ñ¬O§_¬Û¦P
3 ¬Û¦P´N¥[Á`¼Æ¶q¤Î¤p­p
4 ¦A½Æ»s¨ìResult
³o­Ó¹B¦æªº®É¶¡¤W´N¤ñ¸ûªø¡C

TOP

°ò¥»¦r¨åÀ³¥Î..¤§«e«Ü¦h°Ý©«³£¦³¥Î¹L, ¥i¨£ÁÙ¬O¨S¦³¥Î¤ß¥h²z¸Ñ//
¦³¨Ç°ÝÃDÁÙ¬O¥i¥H¦Û¦æ¥h¸Ñ¨Mªº///
Sub Test_a1()
Dim Arr, xD, T$, i&, j&, N&
Sheets("Result").UsedRange.Offset(10).EntireRow.Delete
[Result!a10:i10] = ""
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([Data!i1], [data!a65536].End(3))
For i = 10 To UBound(Arr)
    If Not IsNumeric(Arr(i, 1) & "") Then GoTo i01
    T = Arr(i, 2) & "\" & Arr(i, 4) & "\" & Arr(i, 5)
    If xD(T) = 0 Then
       N = N + 1: xD(T) = N: Arr(N, 1) = N
       For j = 2 To UBound(Arr, 2): Arr(N, j) = Arr(i, j): Next
    Else
       j = xD(T)
       Arr(j, 6) = Arr(j, 6) + Arr(i, 6)
       Arr(j, 8) = Arr(j, 8) + Arr(i, 8)
    End If
i01: Next i
If N = 0 Then Exit Sub
With [Result!a10:i10].Resize(N)
     .Rows(1).Copy .Cells
     .Value = Arr
     .Columns(2).Resize(, 8).Sort Key1:=.Item(2), Order1:=xlAscending, Header:=xlNo
End With
End Sub

TOP

°ò¥»¦r¨åÀ³¥Î..¤§«e«Ü¦h°Ý©«³£¦³¥Î¹L, ¥i¨£ÁÙ¬O¨S¦³¥Î¤ß¥h²z¸Ñ//
¦³¨Ç°ÝÃDÁÙ¬O¥i¥H¦Û¦æ¥h¸Ñ¨Mªº///
Sub T ...
­ã´£³¡ªL µoªí©ó 2024-5-30 15:32


ÁÂÁ­ã¤j«üÂI¡I
³o­Ó°ÝÃD§Ú¤w¸g¥Î¤ñ¸û²Â©åªºµ{¦¡¸Ñ¨M¡C
¥Ñ©ó¦r¨åÀ³¥Îª¾ÃѤñ¸û¯Ê¥F¡A¥¼¯àÆF¬¡¨Ï¥Î¡C
©Ò¥Hµo°Ý¶K¡A§Æ±æ¥i¥H³z¹L¦U¦ì«e½úªº«üÂI¡A±q¤¤¾Ç²ß¦r¨å¨Ï¥Î§Þ¥©¡C

TOP

        ÀR«ä¦Û¦b : ¡i¬°µ½Ävª§¡j¤H¥Í­n¬°µ½Ävª§¡A¤À¬í¥²ª§¡C
ªð¦^¦Cªí ¤W¤@¥DÃD