Excel: 如何找到最后一个空单元格
Excel: How to find the last empty Cell
在 Excel 中,有谁知道如何从给定行向上查找最后一个空白单元格?
我有一个格式奇怪的 excel 导出,我正试图从中报告。但是,我一直在努力寻找一个有效的公式来查找数据。
这里是这份报告的导出格式的2个例子。对于每个 "Item Number",它列出了它所使用的所有部件。这可能只是一个 SKU,或 15 个 SKU,或 none。所以这会导致 sub-header 区域大小不一致。每个新的项目编号都采用相同的格式。我有 8000 多个项目编号,每个项目编号都输出相同的格式。
这里是数组公式:
{=INDEX($B:$B600,SMALL(IF("Item Number:"=$A:$A600,ROW($A:$A600)-ROW($A)+1),COUNTIF(INDIRECT("$A1:$A"&ROW()),"Item Number:")))}
我的公式基本上是查找 SKU(即 35376)并报告它使用的上述商品编号(即 02859)。它通过查找 SKU 的行号,然后计算从顶部到当前行的字符串数 "Item number:",并报告最后一个来实现这一点。
**
Created By: Employee
Create Time: 01/08/2015 04:16:16 PM CST
Where Used Report
Item Number: 02859
Description: Packaging 35376
Level Subclass Number Rev Description Find Num Qty BOM Notes
.. 2 SKU 45268 A MCO-01101 Product Name 0 1
Created By: Employee
Create Time: 01/08/2015 04:16:16 PM CST
Where Used Report
Item Number: 02858
Description: Packaging 35345
Level Subclass Number Rev Description Find Num Qty BOM Notes
.. 2 SKU 35376 E ECO-07812 Product name 0 1
.. 2 SKU 39022 A MCO-01198 Product Name 0 1
.. 2 SKU 39033 A MCO-01187 Product Name 0 1
**
但是,我当前的功能正在崩溃,因为我正在搜索 70k 行。
我宁愿做的是简单地查看 sheet 中的 UPWARDS 以找到最后一个 header 值的行号(即 "Number") 甚至只是最后一个空单元格。相反,似乎大多数功能都是围绕向下查看下一个值而设计的。这迫使我从顶部查看当前行。
有人知道如何从给定行向上查找最后一个空白单元格吗?
您可以通过多种方式使用 LOOKUP
来获取某个值在 last 出现的次数,例如第 100 行中的此公式将在上面的 A 列中找到 "Item Number:" 的最后一个实例,并且 return 是 B 列中的相应值
=LOOKUP(2,1/(A:A99="Item Number:"),B:B99)
如果您知道需要查看多少行,这会很快,例如如果前面的 "Item number" 始终在 30 行以内,您可以将公式中的范围设置为仅查看 30 行
可以使用 SUMPRODUCT,但它会搜索一列中的所有 10xxxxx 个单元格,不要太多,否则电子表格会变慢。
=INDEX(B:B,SUMPRODUCT(MAX((A:A="Item Number:")*ROW(A:A))))
这将 return B 列中最后一个 "Item Number:" 出现的数据
在 Excel 中,有谁知道如何从给定行向上查找最后一个空白单元格?
我有一个格式奇怪的 excel 导出,我正试图从中报告。但是,我一直在努力寻找一个有效的公式来查找数据。
这里是这份报告的导出格式的2个例子。对于每个 "Item Number",它列出了它所使用的所有部件。这可能只是一个 SKU,或 15 个 SKU,或 none。所以这会导致 sub-header 区域大小不一致。每个新的项目编号都采用相同的格式。我有 8000 多个项目编号,每个项目编号都输出相同的格式。
这里是数组公式:
{=INDEX($B:$B600,SMALL(IF("Item Number:"=$A:$A600,ROW($A:$A600)-ROW($A)+1),COUNTIF(INDIRECT("$A1:$A"&ROW()),"Item Number:")))}
我的公式基本上是查找 SKU(即 35376)并报告它使用的上述商品编号(即 02859)。它通过查找 SKU 的行号,然后计算从顶部到当前行的字符串数 "Item number:",并报告最后一个来实现这一点。
**
Created By: Employee
Create Time: 01/08/2015 04:16:16 PM CST
Where Used Report
Item Number: 02859
Description: Packaging 35376
Level Subclass Number Rev Description Find Num Qty BOM Notes
.. 2 SKU 45268 A MCO-01101 Product Name 0 1
Created By: Employee
Create Time: 01/08/2015 04:16:16 PM CST
Where Used Report
Item Number: 02858
Description: Packaging 35345
Level Subclass Number Rev Description Find Num Qty BOM Notes
.. 2 SKU 35376 E ECO-07812 Product name 0 1
.. 2 SKU 39022 A MCO-01198 Product Name 0 1
.. 2 SKU 39033 A MCO-01187 Product Name 0 1
**
但是,我当前的功能正在崩溃,因为我正在搜索 70k 行。
我宁愿做的是简单地查看 sheet 中的 UPWARDS 以找到最后一个 header 值的行号(即 "Number") 甚至只是最后一个空单元格。相反,似乎大多数功能都是围绕向下查看下一个值而设计的。这迫使我从顶部查看当前行。
有人知道如何从给定行向上查找最后一个空白单元格吗?
您可以通过多种方式使用 LOOKUP
来获取某个值在 last 出现的次数,例如第 100 行中的此公式将在上面的 A 列中找到 "Item Number:" 的最后一个实例,并且 return 是 B 列中的相应值
=LOOKUP(2,1/(A:A99="Item Number:"),B:B99)
如果您知道需要查看多少行,这会很快,例如如果前面的 "Item number" 始终在 30 行以内,您可以将公式中的范围设置为仅查看 30 行
可以使用 SUMPRODUCT,但它会搜索一列中的所有 10xxxxx 个单元格,不要太多,否则电子表格会变慢。
=INDEX(B:B,SUMPRODUCT(MAX((A:A="Item Number:")*ROW(A:A))))
这将 return B 列中最后一个 "Item Number:" 出现的数据