如何在第2行的范围内复制这些数字

时间:2015-08-05 14:02:14

标签: excel excel-vba excel-formula vba

excel 2010中的哪个功能可以让我查看绿色区域并复制棕色区域中的值,而不会在它们之间留下任何空白单元格。 绿色区域中的第一行是来自工作表1的数据,绿色中第二行中的数据来自工作表2。 我需要让棕色行显示绿色区域值。有时在绿色区域的第一行中可能有2或3个值,然后在第二行中没有任何值,然后第一行中可能没有任何内容,第二行中可能没有任何值。我希望我解释得这么好。谢谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

我创建了以下公式,似乎达到了您正在寻找的目标:

=IF(A4 = "",INDIRECT(ADDRESS(5,COUNTIF($A$4:A4,""))),A4)

这假设绿色区域的第一行从A4开始(替换为您的信息)。您应该使用此公式替换棕色行值。

这个公式看起来很复杂,但事实上很简单。最外面的IF语句检查结果是否为零 - 如果是,它将返回一个空白单元格。只需使用内部:

即可保留零
=IF(IF(BH5 = "",INDIRECT(ADDRESS(6,60 + COUNTIF($BH$5:BH5,"") - 1)),BH5)=0,"",IF(BH5 = "",INDIRECT(ADDRESS(6,60 + COUNTIF($BH$5:BH5,"") - 1)),BH5))

该公式然后检查它下面的第一个绿色行的单元格是否为空 - 如果是,它将从第二个绿线读取(假设它在线 5 )通过计算多少第一个绿色行中的空白单元格已经存在,并将此数字转换为列名称。然后,它将列名称和行( 5 )转换为地址,并间接访问该地址。如果它下面的第一个绿色单元格不是空白,它将只复制该单元格。

编辑:这个公式中有一个错误,这是我使用A作为我的起始列的结果。对于您要使用的具体要求:

+---------+------+-------+
| game_id | user | score |
+---------+------+-------+
| 1       | Nick | 10    |
| 1       | Bob  | 15    |
| 2       | Nick | 15    |
| 2       | Bob  | 10    |
| 3       | Nick | 20    |
+---------+------+-------+

在BH5-6。我在countif中添加了“60”,因为列BH是#60列。如果你移动数据,你将不得不更新这个数字(虽然我确定有一个公式)。 countif之后的“-1”是必要的,并且比始终键入列号-1更容易,而不是替换列号。