
답변1
아래는 5가지 공식의 진행입니다. 각 공식은 이전 공식을 기반으로 합니다. 이런 식으로 진행하면 나중에 이해하기가 더 쉬워지기를 바랍니다.
[ 5의 공식 1 ] 기본 공식
=IFERROR(IF(
MATCH(A2:A7,FILTER(A2:A7,B2:B7="Wash car"),0),
"yes"),"no")
- 만약에기능 용도성냥.
logical_test
- 그만큼만약에함수의
value_if_true
인수는 다음과 같습니다"Yes"
value_if_false
사용된 것은 반환 또는logical_test
반환만 가능하므로 생략됩니다 .TRUE
#N/A
- IFERROR오류를 다음으로 대체합니다.
"No"
[ 수식 2/5 ] 빈 행 무시
=IF(A2:A7<>0, IFERROR(IF(
MATCH(A2:A7,FILTER(A2:A7,B2:B7="Wash car"),0),
"Yes"),"No"),"")
- 빈 행을 무시하려면만약에
value<>0
기능 은 으로 추가됩니다logical_test
. 다음이 반환됩니다.TRUE
0이 아닌 숫자를 포함하는 모든 셀과 텍스트 문자열(숫자를 포함하는 문자열 포함)에도 적용됩니다. 예.("0"<>0)=TRUE
FALSE
0
Excel이 0으로 강제하는 빈 셀뿐만 아니라 숫자에도 적용됩니다 . 예. 그렇다면OR(ISBLANK(A1),A1=0)
(A1<>0)=FALSE
- 그만큼기본 공식로 사용됩니다
value_if_true
value_if_false
빈 문자열입니다""
.
이 접근 방식은"No"
데이터 공백으로 인한 행 오프셋을 방지하면서 반환을 건너뜁니다.
[ 5 중 수식 3 ] 제목 행의 수식
수식을 머리글 행으로 이동하면 덮어쓰는 것을 방지할 수 있습니다.
=VSTACK("Wash on Order?",
IF(A2:A7<>0, IFERROR(IF(
MATCH(A2:A7,FILTER(A2:A7,B2:B7="Wash car"),0),
"Yes"),"No"),""))
- VSTACK배열을 수직으로 쌓을 수 있습니다
- 사용된 첫 번째 배열은 제목이었습니다.
"Wash on Order?"
- 두 번째 배열은 이전 수식입니다.
[ 5의 수식 4 ] LET 기능 추가
하는 동안허락하다단독으로는 이전 수식에 많은 것을 추가하지 않으며 변환을 명확하게 하기 위해 이 단계에 적용됩니다. 공식이 더욱 복잡해짐에 따라허락하다더 명확해집니다.
=LET(rng,A2:B7,
a,DROP(rng,,-1), b,DROP(rng,,1),
VSTACK("Wash on Order?",
IF(a<>0, IFERROR(IF(
MATCH(a, FILTER(a, b="Wash car"), 0),
"Yes"), "No"), "")))
- 그만큼허락하다함수를 사용하면 재사용을 위해 값과 수식을 변수에 저장할 수 있습니다. 이렇게 하면 코드 반복과 수식 길이가 줄어들고 복잡한 수식을 더 쉽게 이해하고 관리할 수 있습니다.
- 소스 범위는 에 저장됩니다
rng
. - 열 A
a
와 열 B는b
다음을 사용하여 반환됩니다.떨어지다불필요한 열을 파견합니다. a
이제 수식 에서 및b
대신에 사용됩니다 .A2:A7
B2:B7
[ 수식 5/5 ] 자동으로 범위 크기 조정
수식을 수정하지 않고도 데이터가 증가할 수 있습니다. 전체 열을 허용한 다음 채워진 데이터를 기반으로 필요에 따라 배열 크기를 조정합니다. 의 가치허락하다전체 화면에 표시됩니다.
=LET(rng,A:B,
arr,DROP(FILTER(rng, ROW(rng)<=
MAX((rng<>0)*(ROW(rng)))),1),
a,DROP(arr,,-1), b,DROP(arr,,1),
VSTACK("Wash on Order?",
IF(a<>0, IFERROR(IF(MATCH(a,
FILTER(a, b="Wash car"), 0),
"yes"),"no"),"")))
- 필터
arr
행 번호가<=
주문 ID를 포함하는 마지막 행 의 행 번호인 행 배열을 반환합니다 . - 마지막 행은 다음을 적용하여 계산됩니다.최대행에 0이 아닌 값이 포함된 행 번호 배열로 변환됩니다. 별표
*
는 'and' 연산자입니다.MAX(ROW(rng)*rng<>0)
- 결과 배열에는 제목(1행), 순서 및 간격이 포함됩니다. 의도적이거나 우발적인 간격으로 인해 결과가 원래 범위에서 벗어나지 않도록 하기 위해 간격이 포함됩니다.
- 그만큼떨어지다함수는 제목 행을 제거하는 데 사용됩니다. 또는 다음을 추가하여 이를 달성할 수 있습니다.필터상태
ROW(rng)<>1
답변2
다음 솔루션은 샘플 데이터에 설정된 목표를 충족하는 것으로 보입니다.
빈 열에서 각 행에 대해 (셀 내 ) 과 열을
C
연결합니다 .A
B
=concat(A2,B2)
C2
빈 열에 에서
D
시작하는 다음 수식을 추가합니다D2
. 이것은 배열 수식이므로CTRL+SHIFT+ENTER
작동하려면 동시에 눌러야 합니다 .=IF(OR($A$1:$A$6=A1)*(OR($C$1:$C$6=CONCAT(A1,"Wash car"))),"Yes","No")
D2
나머지 행에 복사합니다 .
제가 간과하고 있는 부분이 있는 경우(샘플 데이터 세트가 너무 제한되어 있기 때문에 간과하고 있는 것 같습니다) 알려주시면 수정하도록 노력하겠습니다. 이 해결 방법으로 문제가 해결되면 답변으로 표시해 주세요.