入黎免費幫你砌excel/教你formula (10)

377 回覆
10 Like 3 Dislike
2024-06-05 07:29:38
公司excel好舊,一陣試下
2024-06-05 18:57:53
特登砌過個range, 有D多餘
咁不如直接用xlookup / index match
2024-06-07 23:55:42
各位好 我想請問一下
如果我要搵到114
我想用CX既值 CYC既值 DD既值去搵 應該要點做啦
Google查呢隻做法 好似用唔到呢個Table格式
https://exceljet.net/formulas/index-and-match-with-multiple-criteria

Thank you
2024-06-08 01:04:49
我建議整好個TABLE
你仲有D 1同2
COLUMN A B C D E
A:C 第1~3種
D: 1同2
E放數值
你用VLOOKUP+&黎整或者樞紐分析表
好過你整到咁亂
2024-06-08 01:31:40
好似又岩thank you
2024-06-09 00:46:25
睇落係2-way 3 criteria lookup
1. 咩Excel版本? Excel 365 應該易D
2. 你話用CX既值, 係指1,2 定係 2SD<EH, 1SD<EH ?
2024-06-09 00:54:32
試下?
=INDEX($CY:$DC, MATCH(1, ($CX:$CX = "1SD < EH")*($DD:$DD = "2SD > EL"), 0),MATCH("Expected H",$CY$23:$DC$23,0))
2024-06-09 01:12:33
因為我想搵114 係第二個位我會出到3個值
我想係cx行搵到1sd < eh dd行係2sd >el 然後係cy to dc之間 搵expected h 期待既output係114

應該係excel 2021
2024-06-09 01:12:49
回家試完再report thanks
2024-06-10 03:16:32
It works, thanks a lot
2024-06-11 18:40:13
2024-06-12 03:57:32
2024-06-12 19:50:33
用同一份data 入面有100個人嘅資料(name, age, birth date) 要將每一個人嘅所有資料砌落張form度(呢度應該用vlookup?) 要砌100份for每個人 然後split開咁多個file…
我可以點做
2024-06-12 19:57:31
補充返 要用返張excel form嚟merge data 唔可以mail merge 去word 因為張form下面仲有啲formula要keep..
2024-06-12 20:20:31
VBA
2024-06-12 22:28:29
OR PYTHON
2024-06-12 23:46:26
唔該晒ching 我youtube學下點玩vba/python先
2024-06-13 00:16:15
試下問AI可能快D
不過我懶得幫你問
你上面做幾樣野要分𨳡問幾次
再自己合返埋D CODE會好D
2024-06-13 01:35:26
首先你將d data前面加個column編做1-100號先
然後份form搵個位放1-100 lookup value,例如A1
再用vlookup之類每格lookup A1 return返相應data
如果A1填1既話,就會成份完整既1號data出晒落份form度
A1 loop晒1-100, copy, paste value, save就得,但人手做太慢

VBA寫 :
For i = 1 to 100
Range(“A1”).value = i
仲有copy sheet, paste value, save
Next

你研究下點用VBA先,我轉頭寫份完整code俾你
2024-06-13 01:41:47
LM
2024-06-13 11:48:44
手動呢個方法幾簡易 我啱先成功整咗幾張但係無耐性再痴落去
等埋份vba嘅code我再練習下
2024-06-13 12:31:35
FOR迴圈
整到1份=N份
2024-06-13 22:30:40
入完D code記得Save做.xlsm
Sub Copy_and_Save()
Dim i As Integer
Dim SaveTo_Folder As String

SaveTo_Folder = "C:\MyFile\" '改C:\MyFile\做你個output folder條path

If Right(SaveTo_Folder, 1) <> "\" Then SaveTo_Folder = SaveTo_Folder & "\"
For i = 1 To 100
    Range("A1").Value = i       '改A1做你個lookup cell位置
    ActiveSheet.Calculate
    ActiveSheet.Copy
    ActiveSheet.UsedRange.Copy
    ActiveSheet.UsedRange.PasteSpecial xlPasteValues
    ActiveWorkbook.SaveAs SaveTo_Folder & Format(i, "000") & ".xlsx"
    ActiveWorkbook.Close False
Next

End Sub

之後你可以試下自己改下做唔同野
例如今次有100行就 i = 1 to 100
下次可能有200, 諗下點改可以繼續用
2024-06-14 01:29:55
我直接幫你整埋教埋你點問
https://docs.google.com/spreadsheets/d/1VdsyYexfr_-I0axJe2lsRyu_1zkEgomg/

SCRIPT只係加左Application.DisplayAlerts = False & Application.DisplayAlerts = True
因為AI冇咁醒目
Sub CopyAndSave()
    Dim wsA As Worksheet
    Dim wsB As Worksheet
    Dim wbNew As Workbook
    Dim rng As Range
    Dim path As String
    Dim newName As String
    
    Application.DisplayAlerts = False
    Set wsA = ThisWorkbook.Sheets("SHEET_A")
    Set wsB = ThisWorkbook.Sheets("SHEET_B")

    path = ThisWorkbook.path & "\"
    
    For Each rng In wsB.Range("A2:A" & wsB.Cells(wsB.Rows.Count, "A").End(xlUp).Row)
        wsA.Range("D3").Value = rng.Value
        wsA.Range("F3").Value = rng.Offset(0, 1).Value
        newName = wsA.Range("D3").Value & wsA.Range("F3").Value

        Set wbNew = Workbooks.Add
        wsA.Copy Before:=wbNew.Sheets(1)
        wbNew.Sheets(1).Name = newName

        ' 新增的部分:將公式儲存為值
        wbNew.Sheets(1).UsedRange.Value = wbNew.Sheets(1).UsedRange.Value

        wbNew.SaveAs path & newName & ".xlsx"
        wbNew.Close SaveChanges:=False
    Next rng
    
    Set wsA = Nothing
    Set wsB = Nothing
    Set wbNew = Nothing
    
    Application.DisplayAlerts = True
End Sub


用VBA做以下內容

我有1個EXCEL檔案, SHEET_A是一個表格, SHEET_B是人員資料(第1個ROW是HEADER, 分別是ID, name, age, birth date), 現在我想將SHEET_B的ID(即COLUMN A)每個儲存格分別複製到SHEET_A的D3儲存格, 然後SHEET_A複製到1個新的EXCEL檔, SHEET和檔案名以D3+F3(F3是NAME)的值命名, 儲存路徑是當前目錄

要使用VBA完成您的需求,你可以遵循以下步驟:
切換到SHEET_B並複製ID;
切換到SHEET_A並將ID粘貼到D3;
將SHEET_A保存為新的Excel文件,文件名和表名根據D3+F3的值命名。
以下是完成這個任務的VBA代碼:
Copy
Sub CopyAndSave()
    Dim wsA As Worksheet
    Dim wsB As Worksheet
    Dim wbNew As Workbook
    Dim rng As Range
    Dim path As String
    Dim newName As String

    Set wsA = ThisWorkbook.Sheets("SHEET_A")
    Set wsB = ThisWorkbook.Sheets("SHEET_B")

    path = ThisWorkbook.Path & "\"
    
    For Each rng In wsB.Range("A2:A" & wsB.Cells(wsB.Rows.Count, "A").End(xlUp).Row)
        wsA.Range("D3").Value = rng.Value
        wsA.Range("F3").Value = rng.Offset(0, 1).Value
        newName = wsA.Range("D3").Value & wsA.Range("F3").Value

        Set wbNew = Workbooks.Add
        wsA.Copy Before:=wbNew.Sheets(1)
        wbNew.Sheets(1).Name = newName
        wbNew.SaveAs path & newName & ".xlsx"
        wbNew.Close SaveChanges:=False
    Next rng
    
    Set wsA = Nothing
    Set wsB = Nothing
    Set wbNew = Nothing
End Sub

請注意,該代碼假設SHEET_B的ID列有一行標題,因此從A2開始遍歷。此外,該代碼會將F3設置為ID同行的name字段(即ID右側的單元格),並將其添加到文件名和表名中。
要運行上述VBA代碼,您需要在Excel中開啟開發者工具(如果尚未開啟,可以通過“文件”->“選項”->“自定義功能區”->勾選“開發人員”來開啟),然後打開VBA編輯器(快捷鍵Alt+F11),在VBA編輯器中插入一個新的模塊,並將上述代碼貼入新模塊中,最後運行即可。
請注意,VBA編程涉及到較多的高級操作,如果對VBA不熟悉,操作時請謹慎。
另外,您的問題描述中並未涉及到資料集內容以及 <img src=""> 標籤的相關內容,所以本次回答中並未包含圖片展示。


我忘記了說, 最後儲存EXCEL檔前, 要將表格的公式儲存為值

理解了,若要在保存Excel檔案之前,將表格中的公式保存為值,可以在VBA程式中增加一段程式碼來實現此操作。具體的程式碼如下:
同上面代碼一樣+下面
...
        wbNew.Sheets(1).Name = newName

        ' 新增的部分:將公式儲存為值
        wbNew.Sheets(1).UsedRange.Value = wbNew.Sheets(1).UsedRange.Value

        wbNew.SaveAs path & newName & ".xlsx"
...

在這個程式碼中,我在每次創建新的Excel檔之前,用一行程式碼 wbNew.Sheets(1).UsedRange.Value = wbNew.Sheets(1).UsedRange.Value 將表格中所有已使用的範圍的公式轉換為值。
這樣在儲存新的Excel檔案之前,表格中所有的公式都會被轉換為對應的值,而不再是公式。
同樣,您的問題描述中並未涉及到資料集內容以及 <img src=""> 標籤的相關內容,所以本次回答中並未包含圖片展示。
2024-06-14 01:50:06
如果係VLOOKUP B SHEET度嘅DATA
Worksheets("B").UsedRange.Rows.Count可以直接拎到幾多ROWS
唔洗100, 200
有HEADER就Worksheets("B").UsedRange.Rows.Count-1
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞