내 수식에서 빈 값을 처리하는 방법은 무엇입니까?

내 수식에서 빈 값을 처리하는 방법은 무엇입니까?
=VLOOKUP(VLOOKUP(A7,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F7="S",2,3),FALSE)

내 기능이 주문 ID 번호를 조회하고 이를 기반으로 항목 이름과 일치하도록 하고 싶습니다. 항목 설명이 작으면("S") 열 1에 가격을 반환해야 하고, 항목이 작지 않으면 열 3에 항목을 반환해야 합니다.

문제는 가끔 빈 행이 있어서 모든 것을 버리는 경우가 있다는 것입니다. 따라서 빈 행이 나타날 때마다 한 행 뒤에 있습니다.

내 수식에서 비어 있는 행을 건너뛰고 다음 줄의 값을 사용하고 싶습니다. IF 함수를 조정해 보았으나 작동하지 않습니다.

3가지 가능성이 있습니다:

IF(Q2InventoryLog!F7="L"...), 
IF(Q2InventoryLog!F7="S"...)
IF(Q2InventoryLog!F7=""...)

답변1

나는 여기에서 벗어날 수 있지만 (이전에 일어난 일입니다 ...) 귀하의 공식을 읽어 보면 귀하가 찾고 있는 것이 공식에서 적절하게 목표로 설정되지 않은 것 같습니다. 나는 그것을 다음과 같이 읽었습니다.

=VLOOKUP(VLOOKUP(A7,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F7="S",2,3),FALSE)

VLOOKUP(A7,InventoryLog,5,FALSE: A7에는 일부 주문 ID 번호가 있으며 조회에서는 이를 사용하여 InventoryLog에서 찾은 레코드의 열 5에서 ItemName을 찾습니다.

그런 다음 외부 조회에서는 해당 항목 이름을 사용하여 Price_list의 레코드를 찾고 Q2InventoryLog의 행을 기반으로 Price_list의 해당 레코드에서 열 2 또는 3을 반환합니다.

논리적으로 왜 F7이 A7에 필요한 레코드가 있는 행이어야 하는지에 대한 질문이 발생합니다. 분명히 아무런 관련이 없을 수도 있습니다. 마음 속에 "7"이 있고 "F"와 "7"만 입력했습니다. 그렇다면 왜 "F"이고 무엇을 찾을지 우리가 어떻게 유용하게 알 수 있을까요? 아마도 Q2InventoryLog는 InventoryLog와 한 줄씩 일치해야 하며 매우 잘 수행합니다(또는... 데이터가 사용된 후 몇 번 업데이트된 후에는 다소 의미가 없습니다!). 이유가 무엇이든.

레코드가 일치하는 이유(다른 셀이 아닌 F7이 여기에 하드코드하는 셀인 이유)를 아는 것은 귀하의 질문에서 다루어지지 않습니다. 매번 더 자세히 질문하는 것 같으니 다음 반복에서 이 문제를 다루게 될 것입니다. 그리고 누군가가 당신에게 보다 정확한 도움, 보다 매끄러운 도움을 줄 수 있습니다. 덜 광범위합니다. 하지만 그때까지는 두 가지 지침을 제시하겠습니다.

  1. 내부 조회에서 찾은 항목 이름 또는 모든 것을 시작하는 주문 ID 번호를 포함하는 방식으로 Q2InventoryLog 데이터를 구성하려고 할 수 있습니다. 첫 번째는 "더 나은 방식으로 최적의 표준이 될 것입니다." " 데이터(적어도 더 광범위하게 유용하기 때문에), 두 번째는 여기에서 "지상에 있는" 데이터가 주문 관련 정보에 크기 정보를 포함할 것이라고 의심할 수 있기 때문에 완벽하게 유효한 접근 방식이 될 것입니다. 문제의 보다 일반적인 버전에서 작업하세요). 그러나 둘 중 하나라도 두 번째 내부 조회를 사용하여 정확한 레코드를 찾고 F7 열이 나타내는 데이터를 선택하여 IF()테스트에 포함하고 사용할 수 있습니다.

  2. 빈 줄의 데이터를 정리하려면 약간의 노력을 기울일 수 있습니다. Q2InventoryLog 데이터에 빈 행이 삽입되는 이유를 전통적인 데이터 정리 또는 추적을 의미하는 것은 아닙니다. 아마도 당신이 그렇게 하고 싶었거나 그렇게 할 수 있었다면 그렇게 했을 것이고 문제는 사라질 것입니다.

내 말은 아주 간단한 일을 하라는 것이다. FILTER()빈 행을 간단히 필터링하는 데 사용합니다 . 행 주소를 보존하고 이를 위해 더 많은 작업이 필요하므로 Excel의 필터링 기능을 사용하지 마십시오. 그러나 단순히 FILTER()"무언가 <> 공백" 조건을 사용하여 실제 Q2InventoryLog 데이터 세트를 설정하므로 어려움을 일으키는 빈 줄이 제외됩니다. Q2InventoryLog 데이터는 일대일로 일치해야 하는 것처럼 보이므로 그렇게 하면 됩니다. 조회 시 FILTER()실제 데이터 대신 생성되는 테이블/범위를 사용하세요.

이 방식으로 사용되는 함수 의 단순한 버전은 FILTER()다음과 같습니다.

(레코드가 Q2InventoryLog의 C7:F7이고 행의 일부 셀뿐만 아니라 전체 행이 비어 있다고 가정해 보겠습니다. 따라서 C12가 비어 있으면 전체 행이 문제가 되며 행 12에 필요한 데이터가 현재 행에 있으므로 제거해야 합니다. 13이고 행 12가 사라지면 오른쪽 행으로 이동합니다. 또한 데이터가 C3:F27에 있다고 가정해 보겠습니다.

=FILTER(C3:F27,C3:C27<>"")

분명히 데이터에 맞게 조정할 것입니다.

위에서 알 수 있는 점은 문제가 때로는 다른 개념적 경로로 접근되어 쉽게 해결될 수 있다는 것입니다. 수식에서 행 아래로 점프하는 방법을 알아내는 대신(처음에는 한 행 아래로 이동한 다음, 다른 빈 행이 발생할 때까지 해당 지점 아래의 모든 후속 조회에서 한 행뿐만 아니라 아래로 점프하는 방법을 모두 알아야 함) , 하지만 지금까지 두 개...) 문제를 일으키는 행을 없애는 방법을 알아보세요. 그렇게 하고 여기서처럼 귀찮은 데이터 정리나 데이터 소스에 대한 논쟁만 유일한 방법으로 본다면 여기서처럼 그런 작업 없이도 수행할 수 있는 또 다른 방법이 있다는 것이 밝혀질 수도 있습니다. 또는 그 주장.

마지막으로, 불행하게도 임의의 빈 행이 삽입되어 문제가 발생하는 일대일 대응이 없다면 문제가 해결되지 않을 것입니다(음... Q2InventoryLog 구조를 사용하여 지원할 수 있다는 것이 밝혀지지 않는 한). 추가 내부 조회). 그럼 다시 물어보셔야 할 것 같아요...

그렇다면 한 번에 하나의 작은 개선을 수행하는 전화 회사 기술 접근 ​​방식을 잊어버리고 몇 년 동안 수익을 얻은 다음 또 다른 작은 개선을 추가하고 전체 정보를 제공하십시오. 당신은 그것이 당신에게 훨씬 더 즉각적으로 도움이 된다는 것을 알게 될 것입니다.

답변2

따라서 빈 셀을 허용하는 수식을 만들기 위해 ISBLANK()를 사용합니다.

=IF(ISBLANK(A7), "", VLOOKUP(VLOOKUP(A7,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F7="S",2,3),FALSE))

A7이 비어 있으면 빈 텍스트가 반환됩니다. 그러나 대신 A8 품목의 가격을 반환하려면 ""를 A8의 수식으로 바꾸면 됩니다.

=IF(ISBLANK(A7), VLOOKUP(VLOOKUP(A8,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F8="S",2,3),FALSE), VLOOKUP(VLOOKUP(A7,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F7="S",2,3),FALSE))

관련 정보