Excel: подсчет экземпляров двух совпадающих ячеек - PullRequest
1 голос
/ 08 марта 2019

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

Ex.

     _A____B__

 1. |Red | Blue 
 2. |Red | Blue  
 3. |Red | Green
 4. |Red | Blue 

Общее количество уникальных пар = 2.

Я использовал эту формулу, и она дает мне эти результаты;

Формула: = IF (SUMPRODUCT (($ A $ 2: $ A2 = A2) * ($ B $ 2: $ B2 = B2))> 1,0,1)

Результаты:

Колонны

      _A_____B______C__

 1. |Red | Blue  | 1    
 2. |Red | Blue  | 0
 3. |Red | Green | 1
 4. |Red | Blue  | 0

Проблема в том, что я работаю с наборами данных в диапазоне от 50 до 800 тыс. Строк, и эта формула приводит к тому, что Excel перестает отвечать на запросы и дает сбой. Я могу делать только 5–10 тыс. Строк одновременно, и это все равно занимает вечность.

Есть ли более простой способ, с которым кто-то может мне помочь?


1 Ответ

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

Метод массива COUNTIF для идентификации уникальных пар данных

Обратите внимание, что это функция массива. Эта функция требует выполнения с CTRL + SHIFT + ENTER

{= СУММ (1 / COUNTIFS (А: А, А: А, В: B, B: B)}

В приведенном выше коде A: A представляет диапазон вашего первого столбца данных, а B: B представляет диапазон вашего второго столбца данных. COUNTIFS не ограничивается только двумя критериями - в функцию может быть включено до 127 критериев.

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

Дополнительные замечания

Если вы используете сборку Excel, в которой по умолчанию установлен Power Suite (PowerQuery, PowerPivot, PowerView) (Excel 2016+) или можете установить Power Suite через интерфейс надстроек (Excel 2013), Я бы посоветовал искать решения, использующие эти инструменты для достижения того, чего вы пытаетесь достичь. Эти инструменты оптимизированы для работы с очень большими наборами данных.

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