Excel - определение значения на одном листе и значений на другом с разными диапазонами - PullRequest
0 голосов
/ 13 июня 2018

Мне нужна помощь с формулой или форматом Excel, которая может помочь мне в следующем:

ТАБЛИЦА 1

(Row) |(a) ID | (b)FROM | (c) TO | (d) VALUE 
(1)      123       0        1          50
(2)      123       1        2          50
(3)      123       2        3          50
(4)      123       3        4          50
(5)      123       4        5          60
(6)      123       5        6          60

ТАБЛИЦА 2

(Row) |(a) ID | (b)FROM | (c) TO | (d) VALUE 
(1)      123       0        4          50
(2)      123       4        6          60

ИтакТаблица 1 была увеличена до 1 (от и до), тогда как таблица 2 содержит диапазоны со значениями.Приращенные значения в таблице 1 должны равняться значениям в таблице два, если диапазон в таблице один находится в пределах диапазона из таблицы 2.

OUTPUT

 (Row) |(a) ID | (b)FROM | (c) TO | (d) VALUE 
(1)      123       0        1          50          TRUE
(2)      123       1        2          50          TRUE 
(3)      123       2        3          50          TRUE 
(4)      123       3        4          50          TRUE
(5)      123       4        5          60          TRUE
(6)      123       5        6          60          TRUE

В основном идентификатор '123 'имеетзначение 50 для приращений от 0 до 4 и значение 60 для приращений от 4 до 6 и согласно ТАБЛИЦЕ 2 0-4 = 50 и 4-6 = 60, поэтому утверждение должно быть ИСТИНА.

    =IF(AND(A1=table2!a:a, table1!B1>=table2!b:b,table1!a1<table!B:B),IF(table1!d2=table2!d:d, TRUE,FALSE))

Это может быть связано с тем, как Excel справляется с диапазонами и т. Д.?

Ответы [ 2 ]

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

Мне нравится ответ от @tigeravatar (благодарность ему / ей), но если у вас нет упорядоченного списка, я создал что-то ниже, но это не нужно.Если таблица два не упорядочена по идентификационному номеру, вы можете использовать эту формулу в ячейке E2 и скопировать:

=IFERROR(IF(B2>=INDEX(table2!$A:$D,MATCH(D2,table2!$D:$D,0),2),IF(C2<=INDEX(table2!$A:$D,MATCH(D2,table2!$D:$D,0),3),IF(A2=INDEX(table2!$A:$D,MATCH(D2,table2!$D:$D,0),1),TRUE,FALSE))),FALSE)

По сути, это то же самое, но с оператором AND

=IFERROR(IF(AND(A2=INDEX(table2!$A:$D,MATCH(D2,table2!$D:$D,0),1),B2>=INDEX(table2!$A:$D,MATCH(D2,table2!$D:$D,0),2),C2<=INDEX(table2!$A:$D,MATCH(D2,table2!$D:$D,0),3)),TRUE,FALSE),FALSE)
0 голосов
/ 13 июня 2018

В таблице 1, ячейка E2, используйте эту формулу и скопируйте:

=D2=VLOOKUP(B2,INDEX(table2!B:B,MATCH(A2,table2!A:A,0)):INDEX(table2!D:D,MATCH(A2,table2!A:A,0)+COUNTIF(table2!A:A,A2)-1),3)
...