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

289 回覆
9 Like 3 Dislike
2024-04-23 01:03:27
呢個睇落好d 我核人手㩒少d掣
Unique() 拎個date既list係要分開日子同時間?
2024-04-23 01:03:55
呢個我試過paste落個field到唔work 係咪要用vba
2024-04-23 01:10:14
唔使VBA
你咩Excel版本?
2024-04-23 01:12:00
要拆左個date出嚟先
=UNIQUE(TEXTBEFORE(DateCol, " "))
2024-04-23 01:21:56
2021 Professtional Plus
2024-04-23 01:25:19
咁難搞d
要研究返呢個版本有咩公式可以用
2024-04-23 01:30:06
我試下上面個個分開data同time再maxifs() 先
2024-04-23 17:49:05
原來Excel 2021已經有let, sort...
但無hstack, 所以要分開入
試過maxifs唔work, 可能因為D date/time係文字格式
可以試下咁玩:


C2:
=LET(Date_Col,A2:A9,
XLOOKUP(UNIQUE(LEFT(SORT(Date_Col),SEARCH(" ",SORT(Date_Col)))),LEFT(SORT(Date_Col),SEARCH(" ",SORT(Date_Col))),SORT(Date_Col),,,-1))


D2:
=XLOOKUP(C2#,A2:A9,B2:B9,"",0,-1)

巴打如果唔得, 可唔可以試下用isnumber睇下D 日期/時間係咪數字格式?
2024-04-24 02:59:38
得左了 萬分感謝
2024-04-25 22:45:26

用chatgpt砌左條formula出嚟,但係error
主要係想搵男仔(M)/女仔(F) 根據佢地嘅性別而有嘅不同嘅身高範圍(圖2, A1至A9和C1至C9)是否超重
2024-04-25 23:04:31
唔用BMI哩類黎計超唔超重?
VLOOKUP參考第1個COLUMN唔可以係一個範圍
會係一個值, 通常係ID哩類值
2024-04-25 23:16:22
2024-04-25 23:27:41
唔知咩EDB D野
不過幫你問左AI
哩個係ANS

剩係用前面果個值就得, 例如90:100 15.5
即係90~99.9999超過15.5就超重
100係16都唔超重
=IF(F1>=INDEX(C:C, MATCH(E1, A:A, 1)), "超重", "正常")
唔建議用90:100形式
因為公式處理麻煩會整到條公式更長更難睇

A6:
90:100
=TEXTSPLIT(A6,":")
上面哩條公式可以分割返D值
需要比較新版本EXCEL
冇就要用人手/VBA
2024-04-25 23:32:05
附AI問法
 A B C
90 100 15.5
100 110 18.4
110 120 21.9

我想用EXCEL公式判斷當E1的數在A和B COLUMN的範圍內時, F1有沒有大於對應C COLUMN的值


針對你的需求,我們可以在Excel中使用IF和VLOOKUP函數來實現這個判斷。假設你的資料範圍在A1到C3,E1儲存格中存放你想要判斷的數字,F1儲存格中存放你想要比較的值。你可以在另外一個儲存格中使用以下的公式:

=IF(AND(E1>=A1, E1<B1), F1>C1, IF(AND(E1>=A2, E1<B2), F1>C2, IF(AND(E1>=A3, E1<B3), F1>C3, "不在範圍內")))

這個公式會檢查E1的值是否落在A和B列的數值範圍內,然後判斷F1的值是否大於相應的C列的值。如果是,則結果為TRUE;如果不是,結果為FALSE;如果E1的值不在任何範圍內,則會顯示"不在範圍內"。
請注意,這個方法在有限的數據範圍內是可行的,如果資料範圍很大,可能需要其他方法來實現,例如使用VLOOKUP或INDEX和MATCH函數組合等更進階的方法。


怎樣使用VLOOKUP或INDEX和MATCH函數組合等更進階的方法。

當你有一個較大的數據集且需要查找對應範圍內的數值時,使用VLOOKUP或INDEX和MATCH函數組合會是一個更加靈活和強大的方法。以下是如何使用這些函數來解決你的問題的示例。
使用VLOOKUP
由於VLOOKUP函數在查找時僅能往右查找數據,而且無法直接完成範圍匹配,我們這裡假設E1的值需要查找A和B列間對應的範圍,且該值處於排列有序的A列中,然後比較F1和相應C列的值:

=IF(F1>VLOOKUP(E1, A:C, 3, TRUE), "是", "否")
此公式中,VLOOKUP的最後一個參數設置為TRUE,表示進行近似匹配,即找到最接近且不大於查找值的數據。然後,將F1與對應的C列值進行比較。
使用INDEX和MATCH
INDEX和MATCH的組合提供了更大的彈性,能夠從任意方向查找數據,並進行範圍匹配。對於你的需求,我們首先用MATCH函數找到E1在A:B範圍內的行數,再用INDEX函數取得對應的C列數值進行比較:

=IF(F1>INDEX(C:C, MATCH(E1, A:A, 1)), "是", "否")
這里MATCH函數的第三個參數設置為1,表示查找最接近且不大於查找值的數據的位置。然後,INDEX函數根據MATCH函數返回的位置從C列中取得相應的值進行比較。
請注意,使用這些函數時需要確保數據有適當的排序(例如,使用MATCH函數時A列的數據應該是升序排列的),以便函數正確執行。这两种方法各有特点,可以根据实际情况和个人偏好选择使用。
2024-04-26 02:54:01
想問下用Excel咩版本?
可以幫你砌條易睇d既出嚟
2024-04-26 02:56:34
各位問問題之前請先講低用咩Excel版本
因為用唔同版本玩法可以好唔同
通常Excel 365可以砌得簡潔d
2024-04-26 05:52:15
當你係365

O5:
=LET(
Male_Table, Criterion!$A$1:$B$9,
Female_Table, Criterion!$C$1:$D$9,
Gender, D5,
Height, G5,
Weight, H5,
SWITCH(Gender,
      "M",
            IF(Weight > XLOOKUP(Height,--TEXTBEFORE(CHOOSECOLS(Male_Table, 1), ":"), CHOOSECOLS(Male_Table, 2),"", -1), "超重", "正常"),
      "F",
            IF(Weight > XLOOKUP(Height,--TEXTBEFORE(CHOOSECOLS(Female_Table, 1), ":"), CHOOSECOLS(Female_Table, 2),"", -1), "超重", "正常"),))
2024-04-26 07:01:50
係365呀,唔該巴打
2024-04-26 07:02:13
好詳細!唔該巴打
2024-04-26 10:37:34
想請教下vba
我想可以做到mutli selection嘅時候都可以count 得到個row
即係例如我select A1, A5, D2 cells
佢出嚟嘅row count result 會係2

試過Selection.Rows.Count, 但似乎唔可以用落mutli cell selection

亦都試過for each a in selection
但回傳返嚟嘅row result 都剩係認到最頂嗰個cell

想請問下有咩方法
2024-04-26 11:09:23
問AI, 佢哩個應該係例如A1:A5, B2:B6會計做10個ROWS
但SHEET入面只佔6個ROWS
唔知你想要邊種計法

在Excel VBA中,你可以使用 Selection.Rows.Count 來獲取選擇範圍的行數。但是,如果你選擇了多個非連續的範圍,Selection.Rows.Count 將只返回第一個選擇範圍的行數。
如果你想獲取多個選擇範圍的總行數,你需要遍歷每一個選擇範圍並累加他們的行數。以下是一個實現這一需求的VBA代碼片段:
vba
Dim rng As Range
Dim totalRows As Long

totalRows = 0
For Each rng In Selection.Areas
    totalRows = totalRows + rng.Rows.Count
Next rng

MsgBox "總行數為:" & totalRows

這段代碼首先定義了一個變量 rng 用來存儲每個選擇範圍,並定義了一個變量 totalRows 用來存儲總行數。然後,他通過一個for-each循環遍歷了所有的選擇範圍,並將每個範圍的行數加到 totalRows 中。最後,他顯示了一個消息框,顯示出總行數。
2024-04-26 11:18:09
我想要後者啊
即係A1:A5, B2:B6個result 要係6
2024-04-26 11:47:23
問左佢幾次先答得準

在你的情況下,我們需要找出選擇範圍中的唯一ROW數。我們可以使用一個集合(Collection)來儲存選擇範圍中的每一行的地址。由於集合在添加重複項目時會產生錯誤,我們可以利用這個特性來避免重複的行。
以下是一段修改後的VBA程式碼:
vba
Sub GetUniqueRowsCount()

    Dim rng As Range
    Dim cell As Range
    Dim uniqueRows As New Collection
    Dim key As Variant
    Dim rowCount As Long

    Set rng = Selection

    On Error Resume Next
    For Each cell In rng
        uniqueRows.Add cell.EntireRow.Address, CStr(cell.EntireRow.Address)
    Next cell
    On Error GoTo 0

    rowCount = uniqueRows.Count

    MsgBox "總行數(不包含重複):" & rowCount

End Sub

在這段程式碼中,我們將每一個選擇的單元格的行地址添加到uniqueRows集合中。如果該行的地址已經在集合中(也就是該行已經被選擇過了),那麼uniqueRows.Add將會產生一個錯誤,我們使用On Error Resume Next來忽略這個錯誤。最後,我們用uniqueRows.Count來獲得唯一的行數。
2024-04-26 14:35:49
thx 好似ok 了
想問多句
個dim key as variant 係咪無用?
2024-04-26 18:45:51
睇落無用, Dim左之後完全無再出現

BTW, 玩左VBA好多年, 而家先知有Collection呢樣野
之前一直淨係識用Array
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞