在excel中使用index如何从数组中获取第6个值

时间:2014-08-12 00:22:38

标签: excel

我想从当天开始第6天,应该重复3次,但我无法获得所需的输出

Column A  Column B(Expected output)
Sunday    Sunday
Monday    Friday
Tuesday   Wednesday
Wednesday Monday
Thursday  Saturday
Friday    Thursday
Saturday  Tuesday
          Sunday
          Wednesday
          Monday
          Saturday
          Thursday
          Tuesday
          Sunday
          Wednesday
          Monday
          Saturday
          Thursday
          Tuesday
          Sunday

我正在使用:

=INDEX($E$1:$E$7,6)

我只在星期五得到,如果我自动填充只有星期五被复制到所有单元格。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望显示从开始日期起每六天的名称。有不同的方法。 Index()是一种可能性,但不是最简单的。

更简单:在第一个单元格(B1)中,输入开始日期。格式为自定义格式" dddd"。 在下一个单元格中使用公式

=B1+5

并使用自定义格式" dddd"格式化。根据需要复制。

或使用

=TEXT($B$1+((ROW()-1)*5),"dddd")

并复制下来。

如果您希望以今天的日期为基础,可以使用

从B1开始
=TEXT(TODAY()+((ROW()-1)*5),"dddd")

并复制下来。

编辑:如果单元格内容不是关于日期和工作日,而是任何文本或值,那么您可以使用Index()方法。对于具有七个值的数组,您希望提取每个第六个值,循环遍历七个值。这意味着按以下顺序访问值:

1 6 4 2 7 五 3

因此,您需要一个提供此数字序列的公式。此公式,如果从第1行开始并向下复制,则执行以下操作:

=(1+((ROW()-1)*5))-((INT((1+((ROW()-1)*5))/7)-IF(MOD((1+((ROW()-1)*5))/7,1),0,1))*7)

围绕它包裹索引并调整列引用。在B1中并复制到B21:

=INDEX($A$1:$A$7,(1+((ROW()-1)*5))-((INT((1+((ROW()-1)*5))/7)-IF(MOD((1+((ROW()-1)*5))/7,1),0,1))*7))