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

问题描述 投票:0回答:3

我想在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))
excel excel-formula
3个回答
2
投票

OFFSETINDIRECT都很不稳定。因为,在下面的语法中,它是“仅在工作簿打开”(http://www.decisionmodels.com/calcsecretsi.htm)的易失性,最好是INDEX

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

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

问候


1
投票

据我所知,=ROW(INDIRECT("200:300"))是通常的做法。 我能想到的另一种方式,可能是类似的工作

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

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


0
投票

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

=SUMPRODUCT(ROW($A$1:INDEX($A:$A,10)))
© www.soinside.com 2019 - 2024. All rights reserved.