如何编写一个大型函数来对从行是动态的动态数组中读取的数据进行排序?
How to write a large function to sort read from a dynamic array where the row is dynamic?
我有一个元素数组,比如 A1:D(X)。 X 可以计算但是是动态的,所以数组可以来自 A1:D20 或来自 A1:D100 或 A1:D8。但是20、100或8可以在生成数组的时候计算出来。我正在使用大函数对数组元素进行排序。如何使用大功能。 (大(A1:DX,1))。值 8,20 或 100 存储在 E1 中。
如果我正确理解你的问题,=INDIRECT("A1:D"&E1)
会给你范围。然后 =LARGE(INDIRECT("A1:D"&E1),1)
会给你这个范围内的最大值。
如P.b所述,另一种不会一直重新计算的方法是使用INDEX
而不是INDIRECT
您可以在 INDEX
函数中使用动态数组,然后使用 SEQUENCE
和 E1
来访问您需要的数组部分。
=LARGE(INDEX(A1#,SEQUENCE(1,E1),SEQUENCE(4)),1)
A1#
是示例中的数组 A1:D10
,并根据需要更新(因此是动态的!)。
第一个排序器从第 1 行运行到第 E1
行,第二个排序器从第 1 列运行到第 4 列。
然后LARGE
returns这个子数组中的最大值
(数据是在 A1
中用 =SEQUENCE(10,4)
创建的)。
我有一个元素数组,比如 A1:D(X)。 X 可以计算但是是动态的,所以数组可以来自 A1:D20 或来自 A1:D100 或 A1:D8。但是20、100或8可以在生成数组的时候计算出来。我正在使用大函数对数组元素进行排序。如何使用大功能。 (大(A1:DX,1))。值 8,20 或 100 存储在 E1 中。
=INDIRECT("A1:D"&E1)
会给你范围。然后 =LARGE(INDIRECT("A1:D"&E1),1)
会给你这个范围内的最大值。
如P.b所述,另一种不会一直重新计算的方法是使用INDEX
而不是INDIRECT
您可以在 INDEX
函数中使用动态数组,然后使用 SEQUENCE
和 E1
来访问您需要的数组部分。
=LARGE(INDEX(A1#,SEQUENCE(1,E1),SEQUENCE(4)),1)
A1#
是示例中的数组 A1:D10
,并根据需要更新(因此是动态的!)。
第一个排序器从第 1 行运行到第 E1
行,第二个排序器从第 1 列运行到第 4 列。
然后LARGE
returns这个子数组中的最大值
(数据是在 A1
中用 =SEQUENCE(10,4)
创建的)。