Как рассчитать режим массива, хранящегося в одной ячейке в Excel? - PullRequest
0 голосов
/ 02 марта 2019

Я новичок в Excel, пытаюсь вычислить режим работы массива, но этот массив хранится в одной ячейке.Например, я храню массив (0,1,2,3,4,2,3,3,4) в ячейке A1 и пытаюсь найти режим этого массива.Я попробовал функцию MODE (A1), но, похоже, не работает.Есть ли хорошая рекомендация?Я слышал, что это может быть достигнуто VBA, но я новичок, чтобы преуспеть, есть ли хороший и простой учебник может достичь этой цели?Спасибо, если кто-то может помочь с этим, спасибо:)

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Существует секретная функция Evaluate, которая может взять формулу, составленную из объединенных строк, и получить результат, эквивалентный той формуле, которая используется на листе.

В вашем случае вы хотите построить формулу, котораяобрабатывает вашу строку чисел с разделителями как массив действительных чисел, поэтому цель будет выглядеть следующим образом.

=MODE(0,1,2,3,4,2,3,3,4)

Определяемая пользователем функция может перенести эту функциональность на лист.

Option Explicit

Function arrayMode(str As String)

    arrayMode = Application.Evaluate("MODE(" & str & ")")

End Function

введите описание изображения здесь

Оценить также можно через определенное имя.Выберите B2, затем выберите Формулы, Определенные имена, Определить имя.Дайте ему имя (например, ARRMODE) и используйте следующие ссылки для:

=Evaluate("MODE("&$A2&")")

введите описание изображения здесь

Нажмите OK.

Используйте ARRMODE как функцию листа.Ссылка на ячейку в столбце A в той же строке встроена.

=ARRMODE

введите описание изображения здесь

0 голосов
/ 02 марта 2019

В А2 введите:

=IFERROR(--TRIM(MID(SUBSTITUTE($A1,",",REPT(" ",999)),COLUMNS($A:A)*999-998,999)),"")

и скопируйте.Затем в A3 введите:

=MODE(2:2)

enter image description here

(Вы можете избежать всех «вспомогательных» ячеек, используяфункция ОЦЕНИТЬ ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...