Excel:如何创建(静态)数组常量{1,2,3,...,100}

时间:2016-10-23 03:01:26

标签: excel excel-formula

我想在excel中创建一个包含{1,2,...,100}的命名数组常量,该常量是静态且不变的。我可以手动为{1,2,3,4,5}之类的短数组执行此操作,但我无法找出公式化方法。

我尝试使用ROW()命令输入=ROW(1:100)来执行此操作,但此"常量"如果我添加或删除电子表格行,会被更改。例如,如果我在第2行和第3行之间添加一行,则公式将变为=ROW(1:101)

我发现的唯一方法是使用INDIRECT()函数

=ROW(INDIRECT("A"&1):INDIRECT("A"&100))

但我无法想象这是实现这一目标的推荐方法。

[编辑] 更多细节以帮助澄清。我不想在电子表格的任何地方创建此数组。我只想在公式中引用它的数字范围。

我目前创建这样一个命名数组常量的愿望是以下用例。假设我在A列中有一堆整数,我想确定A列中的{200,201,... 300}范围内的最小值,并将该值放入单元格中B1。我的方法是

  1. 创建一个命名数组常量,例如'targetRange' =ROW(INDIRECT("A"&200):INDIRECT("A"&300))
  2. 在B1中放置引用指定数组的以下公式:=SMALL(IF(COUNTIF(A:A,targetRange)=0,targetRange,""),1)。创建一个命名数组常量,如'targetRange' =ROW(INDIRECT("A"&200):INDIRECT("A"&300))

3 个答案:

答案 0 :(得分:2)

OFFSETINDIRECT都是易变的。因为,在以下语法中,它是易失性的"在工作簿上只打开" (http://www.decisionmodels.com/calcsecretsi.htm),最好是INDEX

ROW(INDEX(A:A,1):INDEX(A:A,100))

请注意,此处选择A列(A:A)完全是任意的。

此致

答案 1 :(得分:1)

据我所知=ROW(INDIRECT("200:300"))是通常的做法。
我能想到的唯一另一种方式,就像

一样
=Row(Offset(Index($A:$A,1),0,0,100,1))

请注意,{=ROW(1:100)}会产生垂直数组{1;2;...;100},而不是水平数组{1,2,...,100}

答案 2 :(得分:0)

为了使其更简洁,可以删除第一个INDEX,如

base