我有一个通过XML映射创建的表,因此每列中都有很多空白单元格。它看起来像:
| Name | Stat 1 | Stat 2 | Stat 3|
| Test | | | |
| | Four | | |
| | | 5 | |
| | | | 102 |
基本上每行只有一个值,我试图将它转移到另一个工作表上,其中所有值都是这样的一行:
| Name | Stat 1 | Stat 2 | Stat 3 |
| Test | Four | 5 | 102 |
在我的搜索中,我找到了这个公式:
=IFERROR(INDEX(Table9[@name],SMALL(IF(Table9[@name]<>"",ROW(Table9[@name])-ROW(Table9[@name])+1),ROWS(A2))),"")
我设置了那个并在另一个工作表的A1中并将其向下拖动它确实返回了已填充的单元格,但它也为所有空白单元格返回0
而不是跳过它们直到它有一个返回值。
可能有更好的方法来做到这一点,所以我对其他选项持开放态度,但如果可能的话,我宁愿避免使用vba。
感谢。
答案 0 :(得分:0)
让我们说输入表格被称为Sheet1
,Name
位于两张表格的单元格A1中。然后在输出表上使用以下公式Name
:
=INDEX(Sheet1!A:A,(ROW()-2)*4+2)
和Stat 1
:
=INDEX(Sheet1!B:B,(ROW()-2)*4+3)
依此类推...更一般地说:
=INDEX(
input_column_range,
(ROW()-first_row_in_output)*number_of_columns + first_row_in_input+column_index
)