我的任务是创建仓库的地图。
在数据中,我必须有模型,描述和位置。
我遇到的问题是,我使用第二张表中的数据来填充“地图”
即。 ='1'!F2
当我尝试拖动并使用它来填充整行时,它会变为='1'!g2
。我希望它转到='1'!F3
我看到它正在做什么的逻辑...但我不希望它使用那个逻辑..我希望它使用它下面的下一个单元来填充该单元格。
答案 0 :(得分:1)
最简单的事情可能是复制然后选择Paste Special>将“1”上的数据转置到新工作表。然后你可以拖动引用新工作表的公式,它们的行为符合预期。
编辑:根据您的原始问题,这将在您向下拖动时向右填充列的结果,反之亦然。这确实是你原来的问题所做的:
=INDEX(Sheet1!$F$2:$Z$8000,COLUMN(),ROW())
从A1开始并向任一方向拖动。要向左添加一个或多个标题行,只需向上或向左插入行或列(以保持公式声音)。
编辑:根据@ brettdj的建议,这是Transpose函数。我觉得很难合作,但它确实让人更清楚发生了什么:
在目标表单的F2:8000单元格中输入:
=TRANSPOSE(Sheet1!$F2:$Z8000)
然后,在选中所有这些单元格的情况下,在其中一个单元格中进入编辑模式并执行Ctrl Shft Enter
进行数组输入。如果您必须调整源范围的大小,我相信您必须使用正确的范围重复这些步骤。我自己也是一名索引迷,所以会坚持下去。偏移是不稳定的,所以我会避免它。如果我有任何最后一次编辑错误,@ brettdj将帮助我们。
答案 1 :(得分:0)
由于您需要的是非本机行为,因此可能需要编写一个小型VBA宏来执行复制,并将其分配给键盘快捷方式。
这是一个简单的示例,将公式一个单元格复制到右侧,更新参考一个单元格(保留公式中的绝对/相对设置)。
它假设A1
样式地址,仅当活动单元格包含引用单个单元格的公式时才起作用(如果不是则静默结束)。将无声地覆盖目标单元格中的任何内容。
Sub CopyToRight()
Dim clFrom As Range
Dim clAddr As Range
Dim addr As String
On Error GoTo EH
Set clFrom = ActiveCell
If clFrom.Formula Like "=*!*" Then
Set clAddr = Range(Mid(clFrom.Formula, 2))
If clAddr.Count = 1 Then
If clFrom.Formula Like "=*!$*$*" Then
addr = clAddr.Offset(1, 0).Address(True, True)
ElseIf clFrom.Formula Like "=*!$**" Then
addr = clAddr.Offset(1, 0).Address(False, True)
ElseIf clFrom.Formula Like "=*!*$*" Then
addr = clAddr.Offset(1, 0).Address(True, False)
Else
addr = clAddr.Offset(1, 0).Address(False, False)
End If
clFrom.Offset(0, 1).Formula = "='" & clAddr.Worksheet.Name & "'!" & addr
End If
End If
clFrom.Offset(0, 1).Select
EH:
End Sub