Это решение в VBA. Измените строки, которые я вызываю в верхней части макроса.
Option Explicit
Sub get_from_sheets()
Dim cell_values(), threshold As Double
Dim source_cell, output_first_cell, output_sheet As String
Dim num_sheets, start_sheet, end_sheet, a As Integer
Dim out_rw, out_cl As Integer
source_cell = "B2" 'fill in this
start_sheet = 10 'fill this
end_sheet = 13 'fill this
output_sheet = "Sheet14" 'fill this
output_first_cell = "A1" 'fill this
threshold = 5 'fill this
out_rw = Range(output_first_cell).Row
out_cl = Range(output_first_cell).Column
ReDim cell_values(end_sheet)
For a = start_sheet To end_sheet
cell_values(a) = Sheets("Sheet" & a).Range(source_cell)
Next a
For a = start_sheet To end_sheet
If cell_values(a) < threshold Then
Sheets(output_sheet).Range(Cells(out_rw, out_cl), Cells(out_rw, out_cl)) = cell_values(a)
out_rw = out_rw + 1
End If
Next a
End Sub
Я не думаю, что вы можете сделать это только с помощью формулы. Можете ли вы использовать VBA/macro вместо этого? Единственным способом с формулой является установка ячеек на вашем листе вывода, равном Sheet1 ... Sheet9B2, а затем выполните '{= IF (A1: A8 <5, A1: A8," ")}' – atclaus
И когда вы говорите, что вы хотите массив, действительно ли вам нужен массив, который вам придется перетащить на несколько ячеек (до 9 - 1 для каждого из ваших листов), чтобы показать значения на ячейку? – atclaus