Excel - формула для подсчета записей в нескольких парах непоследовательных столбцов - PullRequest
0 голосов
/ 21 октября 2018

У меня есть следующий пример матрицы:

A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
2   1       1                               1
3                   1   1       1   1   1                               1
4       1   1   1   1   1                   1      
5           1                   1               1   1   1       1           1

Я пытаюсь подсчитать количество строк, для которых хотя бы одна пара непоследовательных столбцов, исключая строку A, включает записи в обоих столбцах. Пары столбцов известны, но расстояние между столбцами не является постоянным.В текущем примере столбцы B & K и C & L спарены (расстояние или d = 9), E & I и F & J спарены (d = 4), а G & S и H & T спарены (d= 12)Обратите внимание, что столбец D не связан с любым другим столбцом.Это часто происходит: обычно расстояние между столбцами между парами изменяется после столбца без внутреннего спаривания, например, A & E (d = 4), B & F (d = 4), C не имеет спаривания, D & K (d =7), E & L (d = 7) и т. Д.

В текущем примере число строк, в которые по крайней мере одна пара столбцов (как указано выше) включает записи, равно 3. Например,строка 1 содержит записи для всех пар столбцов, строка 3 содержит записи для пары столбцов F & J, а также G & S, а строка 4 содержит записи для пары столбцов C & L.

Вот примерформулу массива, которую я написал:

=COUNT(IFS(SUBTOTAL(2,OFFSET(B1,ROW(B1:B5)-ROW(B1),0,1,COLUMNS(B1:C1)))>1,SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1))),SUBTOTAL(2,OFFSET(C1,ROW(C1:C5)-ROW(C1),0,1,COLUMNS(C1:D1)))>1,SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1)))))

Он подсчитывает количество записей для пар последовательных столбцов (например, B & C, C & D).Я не уверен, как его обновить, чтобы он указывал пары непоследовательных столбцов (например, B & K, C & L, E & I и т. Д., Как указано выше).

Вот несколько условий:

  • Возможно, вы не думаете, что SUBTOTAL является наиболее эффективным вариантом (например, MMULT abd SUBTOTAL может быть более подходящим); однако я ограничен выражением этого в единой формуле Excel (к сожалению, без кода VBA).Я не могу создавать новые столбцы или строки либо .
  • Элементы матрицы не обязательно равны 1 в фактической матрице, но они являются целыми числами (в диапазоне от 1 до 100).
  • В полной матрице имеется 8 пар столбцов с расстоянием= 9, 11 пар столбцов с расстоянием 12 и 3 пары столбцов с расстоянием 3.

1 Ответ

0 голосов
/ 21 октября 2018

Попробуйте эту формулу

=SUM(IF((
    IF(B1:B5>0,IF(K1:K5>0,1))+
    IF(C1:C5>0,IF(L1:L5>0,1))+
    IF(E1:E5>0,IF(I1:I5>0,1))+
    IF(F1:F5>0,IF(J1:J5>0,1))+
    IF(G1:G5>0,IF(S1:S5>0,1))+
    IF(H1:H5>0,IF(T1:T5>0,1))
) > 0, 1, 0))

Вы можете добавить оставшиеся пары в приведенном выше списке, я добавил те, которые вы упомянули.

...