Excel如何查找第一个非空单元格

有任务1、任务2等,开始日期不固定,完成日期不固定,每天完成数量不固定,如何自动统计每个任务的开始日期和完成日期?不能先排序,只能按日期顺序查找。
如图:第一行为日期

1、首先在计算机桌面建立一个新的Excel表格

2、建好表格后鼠标双击打开,然后导入要进行查询的数据,如下图。

3、接着在I3单元格内输入公式:=counta(B3:H3),然后按回车键,可以看到统计出来是6。

4、然后把鼠标放在I3上,等右下角变成十字光标时候,下拉到有数据单元格位置。

5、下拉完成后松开鼠标,就可以看到完成所有非空单元格统计了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-11

B6数组公式,输入完成后不要直接回车,要按三键  CTRL+SHIFT+回车  结束再下拉。

=TEXT(INDEX(B$1:K$1,MATCH(1=1,OFFSET(B$1,MATCH(A6,A$1:A$4,)-1,,,10)<>"",)),"m-d")


C6是普通公式,输入完成直接回车再下拉即可。

=TEXT(LOOKUP(9^9,OFFSET(B$1,MATCH(A6,A$1:A$4,)-1,,,10),B$1:K$1),"m-d")


我把文件传上来,请点击这回答右下角绿色的“点击下载”按钮,下载文件看看效果。


本回答被提问者和网友采纳
第2个回答  2013-09-28

1 第1行日期范围由程序自动检测有多少列,最大有效范围为256列

2 打开工作簿点击按钮,开始日期和结束日期等数据均由程序自动填写

3 不明白hi我

 

第3个回答  2013-09-28

如图,做两个函数,函数名称及内容如下:

Function ks(p%) As String
    Dim i%, x As String
    x = ""
    i = 2
    Do While Cells(1, i) <> ""
        If Cells(p, i) <> "" Then
            x = Cells(1, i)
            Exit Do
        End If
        i = i + 1
    Loop
    ks = x
End Function
Function js(p%) As String
    Dim i%, x As String
    x = ""
    i = 2
    Do While Cells(1, i) <> ""
        If Cells(p, i) <> "" Then
            x = Cells(1, i)
        End If
        i = i + 1
    Loop
    js = x
End Function

 在单元格中调用时,参数P表示你要查找的行号,比如对于任务1,P=2,对于任务2,P=3

然后就可以得到结果了

注意:(1)两个函数必须写在独立模块中。

          (2)由于日期型数据在EXCEL不好控制,所以最好表示成字符型。

第4个回答  推荐于2016-01-01
单元格B6输入公式
=INDEX(B$1:Z$1,MATCH(HLOOKUP("*",B2:Z2,1,0),B2:Z2))

单元格C6输入公式
=LOOKUP(4^4,B2:Z2,B$1:Z$1)

然后公式往下拉,即可。

公式解释:
HLOOKUP,和LOOKUP是查找函数,
MATCH是得到索引,而INDEX是根据索引返回值。