在列表中拆分数字并从中输出特定数字

时间:2013-07-12 06:49:02

标签: excel excel-formula

我想使用一个包含20个数字的列表,这些数字全部存储在同一个单元格中并用空格分隔。例如A1我有:

  

0 0 1 1 2 3 4 7 8 9 10 12 14 16 18 21 24 28 32 37

下面的代码(我在B1中的代码)将显示在单元格A1中有多少个数字(或单词,以空格分隔的任何内容):

  

= IF(LEN(TRIM(A1))= 0,0,LEN(TRIM(A1)) - LEN(SUBSTITUTE(A1,“”,“”))+ 1)

B1的输出为20.

我希望能够在单元格A2中输入1到20之间的数字,并使B2的输出为与A1中该位置的值对应的数字。例如,A2中的输入19将在B2输出32。

我有几个这样的数字序列,据我所知,大多数数字序列不能用一个本来容易得多的公式来表示。我还可以将每个数字放在一个单独的单元格中并使用大量的IF()函数,但这对于如此多的序列来说会很繁琐。

我尝试使用A1数据和B1公式更改为SEARCH():

1:0 2:0 3:1 4:1 5:2 6:3 7:4 8:7 9:8 10:9 11:10 12:12 13:14 14:16 15:18 16:21 17:24 18:28 19:32 20:37  
  

= SEARCH(A2&安培; “:”,A1)

现在当输入19到单元格A2时,我得到90的输出(被搜索的序列的第一个字符是单元格中的第90个字符)。我认为这些信息可能会帮助我输出:之后的数字,在这种情况下是32。

这可能吗?

2 个答案:

答案 0 :(得分:0)

根据您的修改,您可以使用90中的MID()

=MID(MID(A1,SEARCH(A2&":",A1),SEARCH(A2+1&":",A1)-SEARCH(A2&":",A1)),FIND(":",MID(A1,SEARCH(A2&":",A1),SEARCH(A2+1&":",A1)-SEARCH(A2&":",A1)))+1,999)

公式有点长,但如果使用其他单元格则会更短。例如,如果你把:

MID(A1,SEARCH(A2&":",A1),SEARCH(A2+1&":",A1)-SEARCH(A2&":",A1))
C2中的

,那么第一个公式就会变成

=MID(C2,FIND(":",C2)+1,len(C2))

答案 1 :(得分:0)

有两种选择。

将A1复制到C1(因为B1可能在路上)然后将文本应用于C1上的列,其中Space为分隔符。在B1:

=INDEX(C1:V1,A2)  

或,

B1中的

(如果您愿意,则为B2)输入=CHOOSE(A2,X)
并在A3中输入=SUBSTITUTE(A1," ",",")

然后将X替换为A3上的复制和粘贴特殊值的结果。