
答え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
- エラーの場合エラーを置き換える
"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)=TRUE
FALSE
Excelがゼロに強制する数値0
と空のセル。例OR(ISBLANK(A1),A1=0)
:(A1<>0)=FALSE
- の基本式として使用されます
value_if_true
value_if_false
空の文字列です""
。
このアプローチは"No"
、データ内のギャップによる行のオフセットを防ぎながら、戻りをスキップします。
[ 式 3/5 ] 見出し行の式
数式を見出し行に移動すると、上書きされなくなる可能性があります。
=VSTACK("Wash on Order?",
IF(A2:A7<>0, IFERROR(IF(
MATCH(A2:A7,FILTER(A2:A7,B2:B7="Wash car"),0),
"Yes"),"No"),""))
- Vスタック配列を垂直に積み重ねることができる
- 最初に使用された配列はタイトルでした
"Wash on Order?"
- 2 番目の配列は前の式です。
[ 式 4/5 ] 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"),"")))
答え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
残りの行にコピーします。
何か見落としがある場合(サンプル データ セットが非常に限られているため、見落としている可能性があります)、お知らせください。修正するように努めます。この解決策で問題が解決した場合は、回答としてマークしてください。