использование формулы MATCH в Excel

У меня вопрос о том, как используется MATCH.

Сначала это началось, когда я хочу узнать «Сколько различных / уникальных элементов в моем диапазоне значений». После небольшого исследования эта формула, по-видимому, делает работу достаточно хорошо:

=SUM(IF(FREQUENCY(MATCH(B2:B10,B2:B10,0),MATCH(B2:B10,B2:B10,0))>0,1)) 

Which "Подсчитывает количество уникальных значений текста и числа в ячейках B2: B10 (которые не должны содержать пустые ячейки)"

Я хочу понять эту формулу немного лучше, поэтому я скопировал эту часть и вставил ее в другое место:

 MATCH(B2:B10,B2:B10,0) 

И это оценивается как «#Value!».

В этом случае, как добиться успеха в первую очередь? Поиск того, как работает MATCH, мало мне подсказывал, поскольку в примерах требуется «значение», а не «диапазон», который должен быть помещен в первый аргумент …

Любое понимание этого было бы высоко оценено!

FYI – для тех, кто заинтересован в получении первой формулы здесь: https://support.office.com/en-us/article/Count-unique-values-among-duplicates-8d9a69b3-b867-490e-82e0-a929fbc1e273?CorrelationId= 4331e8f6-e4d5-4210-9b21-3ed53ee45a6d & Ui = EN-US и Rs = EN-US и объявления = US

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

Почти во всех случаях это подразумевает фиксацию формулы в виде формулы массива (т. Е. С помощью CTRL + SHIFT + ENTER), хотя некоторые функции, в том числе FREQUENCY, обладают врожденной способностью принуждать массив возвратов без этой комбинации клавиш.

И это объясняет ваш # ВАЛЮТ! error: конструкция MATCH сама по себе не будет оценивать по всем элементам передаваемого массива: она требует некоторой внешней функции для принуждения и обработки результатов массива возвратов, который достигается здесь Функция ЧАСТОТА.

На самом деле эта конструкция не самая эффективная: повторение предложения MATCH для bins_array не является необходимым и означает, что конструкция чрезмерно ресурсоемкая. Также не требуется компаратор (> 0). Лучше просто:

=SUM(IF(FREQUENCY(MATCH(B2:B10,B2:B10,0),ROW(B2:B10)-MIN(ROW(B2:B10))+1),1))

поскольку – и особенно в больших диапазонах – несмотря на дополнительные вызовы функций, конструкция:

ROW(B2:B10)-MIN(ROW(B2:B10))+1

скорее всего, будет намного быстрее вычислять, чем тот, который предполагает линейный поиск.

С уважением

PS Если вы хотите объяснить, как это работает, просто дайте мне знать.

  • Объединить формулы 2
  • Поиск числовых символов с использованием подстановочных знаков в countif
  • Сочетание содержания mutliple клеток в 1 ячейку
  • Форматирование CSV-файла исторических данных запаса
  • Ячейка содержит строку в другом листе
  • Как создать граф в excel, который использует несколько столбцов и содержит столбцы?
  • Вызов одной и той же ячейки разных листов в EXCEL
  • Проверка данных по ячейкам
  • Формула для обеспечения общего количества чисел в сочетании с текстом
  • Отображение нескольких значений в одном столбце на основе значений в нескольких столбцах в Excel
  • Формула столбца Excel с условным значением
  • Давайте будем гением компьютера.