Excel: получить текстовое значение не скрытых ячеек - PullRequest
0 голосов
/ 19 октября 2019

Эта формула

SUBTOTAL(3,OFFSET($F$5,ROW($F$5:$F$400)-ROW($F$5),0))

дает массив 0 для тех ячеек, которые скрыты, и 1 для тех, которые не скрыты.

Я хотел бы иметь массив из 0или пустое поле для скрытых ячеек и значение ячейки, которое является текстом, для этих не скрытых ячеек.

Какая формула будет делать это?

Следующие изображения являются примером. Если я отфильтрую столбец 1, выбрав 1. Тогда на экране появятся только яблоко, ананас и банан. Остальные будут скрыты. Мне нужен этот массив: {"Apple", "", "", "", Pineapple, "", "Banana", "", ""}.

enter image description here

enter image description here

Ответы [ 2 ]

2 голосов
/ 19 октября 2019

Вот альтернатива для подсчета visibile Banana:

enter image description here

Формула в E1:

=SUMPRODUCT((B2:B10="Banana")*(SUBTOTAL(3,OFFSET(B2,ROW(B2:B10)-2,0))))

enter image description here

Этот ответ основан на этом веб-сайте, который дает вам немного дополнительной информации о том, почему это будет работать.

1 голос
/ 19 октября 2019

Чтобы получить текстовое значение не скрытых ячеек

Попробуйте эту формулу массива (Ctrl + Shift + Enter):

=TRANSPOSE(IF(SUBTOTAL(3,OFFSET($F$5,ROW($F$5:INDEX($F$5:$F$400,COUNTA($F$5:$F$400)))-ROW($F$5),0))=1,F5:INDEX($F$5:$F$400,COUNTA($F$5:$F$400)),""))

, которая будет возвращать результат массива:

={"Apple","","","","Pineapple","","Banana","",""}

И,

Для подсчета количества "бананов"

Попробуйте эту формулу массива (Ctrl + Shift + Enter):

=SUM(0+(IF(SUBTOTAL(3,OFFSET($F$5,ROW($F$5:INDEX($F$5:$F$400,COUNTA($F$5:$F$400)))-ROW($F$5),0))=1,F5:INDEX($F$5:$F$400,COUNTA($F$5:$F$400)),"")="Banana"))

Что будетreturn 1 в вашем примере

Примечание:

1] Формула SUBTOTAL + OFFSET изначально возвращает результат массива строк. Поскольку вам требовался результат для массива столбцов, поэтому добавление TRANSPOSE () для преобразования массива строк в массив столбцов в 1-й формуле.

2] 2-я формула - это формула числа отсчета, массив строк или столбцов дасттот же результат, поэтому TRANSPOSE () не требуется.

...