У меня есть набор данных в Excel, где каждая строка имеет (среди прочего) два значения, и я хочу, чтобы создать отсортированный список всех пар.

Пример данных:

Val1  Val2
------------
A     B
B     A
C     A
B     C
A     B
C     A
etc..

Пример вывода:

Val1  Val2  Count
------------------
A     B     2
B     A     1
B     C     1
C     A     2

Есть ли способ сделать это без написания кода VBA.

Изменить: я должен добавить, что мой набор данных растет, и я бы предпочел решение, которое будет обновляться автоматически при вводе новых данных.

3 ответа3

1

Самый простой способ - соединить два столбца вместе, выполнить для этого COUNTIF() и, наконец, удалить все повторяющиеся строки.

пример скриншота

0

Предположим: строка 1 является строкой заголовка, а строка 2 является первой строкой данных (A B).

меры

  1. Введите в D2: =A2 & "|||" & B2 и скопируйте в D3: D999
    (Используйте некоторую редкую строку, такую как "|||")

  2. Введите в C2: =COUNTIF(D:D, D2) и скопируйте в C3: C999

  3. Скопируйте столбец C: C, затем вставьте Special в качестве значения в столбец C: C (Alt-E > S > V > Enter).

  4. Выберите столбец A: D, затем сортируйте по столбцу D

  5. Введите в E2: =IF(OR(ROW(D2)=2, C2=1, AND(C2>1,D2<>D1)), "Keep", "Delete") и скопируйте в E3: E999

  6. Включить автофильтр (Alt-D > F > F)

  7. Выберите "Удалить" в выпадающем списке столбца E

  8. Выберите строку 2: 999, затем щелкните правой кнопкой мыши> Удалить
    (Немного #REF! может быть показано в столбце E, что является нормальным)

  9. Выключите автофильтр (Alt-D > F > F)

  10. Удалить фиктивный столбец D: E

0

Используйте макрос countifs .

Оригинальная таблица:

      A     B
    Val1  Val2
    ------------
 1  A     B
 2  B     A
 3  C     A
 4  B     C
 5  A     B
 6  C     A
    etc...

Макрос в этом случае:

=COUNTIFS(A1:A6, A1, B1:B6, B1)

Что гласит:«Если в диапазоне A1:A6 есть A, а если в диапазоне B1:B6 есть B, считайте его».

Это приведет к чему-то вроде этого (с COUNTIFS в столбце G):

      E    F     G
    Val1  Val2  Count
    ------------------
 1  A     B     2
 2  B     A     1
 3  B     C     1
 4  C     A     2

Можно сделать диапазоны абсолютными:

=COUNTIFS($A$1:$A$6, A1, $B$1:$B$6, B1)

Или используйте таблицу истинности (или ключ), чтобы COUNTIFS не был самоссылочным.

      H    I    
    Keys1 Keys2 
    ------------
 1  A     A     
 2  B     B     
 3  C     C

Что помогло бы создать показатели, которые бы собирали данные из исходного набора данных, но сравнивали со ссылочной таблицей, например так:

=COUNTIFS($A$1:$A$6, H1, $B$1:$B$6, I1)

Так что это то же самое, но теперь данные в таблице можно обновлять и сортировать, не делая COUNTIFS неточными.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .