excel数组公式:不必'ctrl-shift-enter'?

问题描述:

按f2编辑数组公式,例如{= MATCH(TRUE,(B2:B100)> 0,0)},大括号当然会消失。编辑完成后,您必须按ctrl + shift + enter使大括号重新出现。excel数组公式:不必'ctrl-shift-enter'?

即使您按下正常的“输入”,是否还有一些设置保留{}?

同样在复制上面的单元格(即包含数组公式)后,您不能将它粘贴到10个其他单元格上。您一次只能将其粘贴到一个新的单元格中。有没有办法一次粘贴到多个单元格上?

感谢

数组公式应该复制并粘贴罚款,并保留它的阵列,只要您复制单元格,而不是在公式栏中复制公式。如果您向下或向外拖放/填充单元格,它也可以很好地复制。它可能是,如果你想保持范围B2:B100拖动时,然后使用$ B $ 2:$ B $ 100来停止递增。

F4是一个很好的捷径,可以帮助你。将光标放在B2:B100上并按F4。

如果你想强制某些单元格总是保留公式数组我可以想到一个肮脏的解决方法,但我认为它可能比正面更多的负面因素。

否定:

- 它涉及VBA

- 它会清除撤消堆栈/剪贴板

- 它的潜在的更混乱

解决方法

标签公式,必须具有对结果没有影响的术语的数组公式。例如(0*0)+。然后可以检查该术语,并通过代码使其始终为数组公式。

所以公式以上变得{=(0*0)+MATCH(TRUE,(B2:B100}>0,0)}

然后放在ThisWorkbook enter image description here

输入验证码

Option Explicit 

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
Dim cell As Range 

For Each cell In Target 
    If Target.Cells.Count = 1 Then 
     If InStr(1, Target.Formula, "(0*0)+", vbTextCompare) And _ 
      Target.HasArray = False Then 
      Target.FormulaArray = Target.Formula 
     End If 
    End If 
Next cell 

End Sub 

whenver的小区被改变时,该代码将检查的术语(0 * 0)+,并将其作为数组公式指定为数组公式。

+0

感谢您的答复! – Relaxed1

有几种方法可以将数组公式转换为“常规”公式 - 这可能会对您有所帮助。例如,在这种情况下,一个附加的INDEX函数指的是式可以以正常的方式被输入

=MATCH(TRUE,INDEX(B2:B100>0,0),0)

+0

谢谢,请看看 – Relaxed1