Excel - поиск пропущенных значений и возврат этих значений на основе 3 столбцов - MATCH / INDEX / IF комбинированный? - PullRequest
0 голосов
/ 27 июня 2018

Это становится для меня слишком опытным, надеюсь, один из вас может мне помочь!

Посмотри на картинку, чего я пытаюсь достичь. Красный текст показывает, что я хочу. List3 содержит все возможные значения для List1 . List2 отображает текущие активные значения для List1 , и я хочу вернуть пропущенные значения на основе List3 .

enter image description here

Полагаю, я смотрю на функцию MATCH / INDEX / IF, но не могу понять это. Кто-нибудь хочет мне помочь? <3 Большое спасибо! </p>

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Ссылка на изображение ниже. Используйте эту формулу, чтобы получить пропущенное число:

=SUMPRODUCT(--(A2:A40<>A1:A39))*ROWS(C2:C12)-ROWS(A2:A40)

Измените A40 на последнюю ячейку данных в столбце A, а A39 - на секунду до последней ячейки.

Затем введите этот вспомогательный столбец как формулу массива ( Ctrl + Shift + Enter ) в диапазон из 1 столбца с тем же количеством строк, которое формула выше возвращает (она кодирует отсутствующие пары в одно число). Я ввел это в D4:D8:

=SMALL(IFERROR(0>MATCH(INDEX(A2:A40,INDEX(SMALL(IF(A2:A40<>A1:A39,ROW(A2:A40)-ROW(A1)),ROW(INDIRECT("1:"&SUM(--(A2:A40<>A1:A39))))),INT((ROW(INDIRECT("1:"&ROWS(C2:C12)*SUM(--(A2:A40<>A1:A39))))-1)/ROWS(C2:C12))+1))&INDEX(C2:C12,MOD((ROW(INDIRECT("1:"&ROWS(C2:C12)*SUM(--(A2:A40<>A1:A39))))-1),ROWS(C2:C12))+1),A2:A40&B2:B40,0),INDEX(SMALL(IF(A2:A40<>A1:A39,ROW(A2:A40)-ROW(A1)),ROW(INDIRECT("1:"&SUM(--(A2:A40<>A1:A39))))),INT((ROW(INDIRECT("1:"&ROWS(C2:C12)*SUM(--(A2:A40<>A1:A39))))-1)/ROWS(C2:C12))+1)*ROWS(C2:C12)+MOD((ROW(INDIRECT("1:"&ROWS(C2:C12)*SUM(--(A2:A40<>A1:A39))))-1),ROWS(C2:C12))+1),ROW(INDIRECT("1:"&SUM(--(A2:A40<>A1:A39))*ROWS(C2:C12)-ROWS(A2:A40))))

Снова измените A40 на последнюю ячейку ваших данных в столбце A, а A39 - на секунду до последней ячейки.

Далее введите эту формулу в E4 и заполните:

=INDEX($A$2:$A$40,INT(D4/ROWS($C$2:$C$12)))

Наконец, введите эту формулу в F4 и заполните:

=INDEX($C$2:$C$12,MOD(D4,ROWS($C$2:$C$12)))

enter image description here

0 голосов
/ 27 июня 2018

Поместите эту формулу в F4 и заполните.

=INDEX(C:C, AGGREGATE(15, 7, ROW(C$2:C$11)/NOT(COUNTIFS(B:B, C$2:C$11, A:A, E4)), COUNTIF(E$4:E4, E4)))

Конечно, эта формула зависит от того, является ли список «чисел» в E4: E7 точным и достаточно заполненным, чтобы отловить все пропущенные записи.

enter image description here

...