iT邦幫忙

0

excel 回傳數值問題

wsj 2020-06-20 09:51:071732 瀏覽
  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20200620/20123369DRskthFZQD.jpg請問各位大大:
有一列數字(A1~G1),儲存格內容分別是0,0,3,0,16,44,23,如何回傳第一個非0數字於儲存格I1,謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
ccenjor
iT邦高手 1 級 ‧ 2020-06-20 21:31:31
最佳解答

=INDEX(A1:G1,0,SUMPRODUCT(LARGE((A1:G1>0)*COLUMN(A1:G1),COUNTIF(A1:G1,">0"))))

rogeryao iT邦超人 8 級 ‧ 2020-06-20 21:56:09 檢舉

第一個非0數字
A1:G1<>0

0
海綿寶寶
iT邦大神 1 級 ‧ 2020-06-20 15:02:12

簡問簡答

Function FirstNonZero(ByVal arr) As Integer
    For nI = 0 To UBound(arr)
        If arr(nI) > 0 Then
            FirstNonZero = arr(nI)
            Exit For
        End If
    Next nI
End Function
Sub Main()
    nums = Array(0, 0, 3, 0, 16, 44, 23)
    Debug.Print FirstNonZero(nums)
End Sub

改題目改答案

Function FirstNonZeroRange(ByVal rng) As Integer
    For Each c In rng
        If c > 0 Then
            FirstNonZeroRange = c
            Exit For
        End If
    Next
End Function
Sub Main()
    rng = Range("A1:G1").Cells
    Range("I1") = FirstNonZeroRange(rng)
    Debug.Print Range("I1")
End Sub

我要發表回答

立即登入回答