『リストされた文字を別Sheetにあるリストの文字と一致したものに紐付いた情報を返す』(アラン)
すみません、どうしても分からないためお助け下さい。
具体的には、Sheet1にリストされてある文字をSheet2のA列のリストにある文字と一致した場合、Sheet2のA列に紐づいたB列にある文字をSheet1のF列のそれぞれの行に抽出したいのですがそのようなことは可能でしょうか?
(例) Sheet1 1行目のA,B,C,D,E列にある文字と一致する文字は、Sheet2のA列1行目のB2なのでRedがSheet1のF列1行目に返される。よろしくお願いいたします。
Sheet1
A B C D E F 1 A1 B2 C3 D4 E5 2 B1 A2 B3 C4 C5 3 C1 C2 A3 B4 B5 4 D1 D2 E3 A4 D5 5 E1 E2 D3 E4 A5
Sheet2
A B 1 B2 Red 2 D5 Blue 3 A2 Yellow 4 A3 Green 5 D2 Brown 6 E4 Black 7 A5 Orange
< 使用 Excel:Microsoft365、使用 OS:unknown >
こういうことなのかな…? F1 =LET(a,XLOOKUP(TRANSPOSE(A1:E1),$L$1:$L$7,$M$1:$M$7,""),TRANSPOSE(FILTER(a,a<>"",""))) 下コピー
|[A]|[B]|[C]|[D]|[E]|[F] |[G] [1]|A1 |B2 |C3 |D4 |E5 |Red | [2]|B1 |A2 |B3 |C4 |C5 |Yellow| [3]|C1 |C2 |A3 |B4 |B5 |Green | [4]|D1 |D2 |E3 |A4 |D5 |Brown |Blue [5]|E1 |E2 |D3 |E4 |A5 |Black |Orange (フォーキー) 2023/09/25(月) 09:15:21
どうなればいいのか、5行目まですべて書いてください。
該当するものが複数あったら G列以降に表示でいいのなら
F1 =TOROW(FILTER(Sheet2!$B$1:$B$7,COUNTIF(A1:E1,Sheet2!$A$1:$A$7),"")) 下にだけコピー(右にはコピーしない)
以上 (笑) 2023/09/25(月) 09:27:14
(アラン) 2023/09/25(月) 14:42:10
フォーキーさん、ご指摘ありがとうございました。
(アラン) 2023/09/25(月) 16:21:44
下記の関数でうまくいったのですが、その後少し発展させようと思ったところで躓いたためお助けください。
F1 =TOROW(FILTER(Sheet2!$B$1:$B$7,COUNTIF(A1:E1,Sheet2!$A$1:$A$7),""))
新たにデータベースとしてSheet1の列A-Eと同じ情報としてSheet0を作成して、Sheet1のF列に上記の関数を入れてSheet2のA列と合致する情報をSheet1のF列のそれぞれの行にSheet2のB列を返すようにしています。またSheet1のAからE列は、Sheet0のAからE列の情報をIndirect関数で参照するようにしました。
そこでSheet0の行を削除すると、削除をしたSheet0の行のすぐ下の行がSheet1の同じ行に返されますが、そのF列のセル(上記関数を入れてあるセル)が「#REF!」でエラーとなります。このような場合どのようにすればよいでしょうか。ご教示のほどよろしくお願いいたします。
例)Sheet0の2行目を削除すると、元々Sheet1の4行目にあったデータ列AからEは参照しますが、Fのみ「#REF」エラーとなってしまいます。
Sheet0
A B C D E 1 A1 B2 C3 D4 E5 2 B1 A2 B3 C4 C5 (削除) 3 C1 C2 A3 B4 B5 4 D1 D2 E3 A4 D5 5 E1 E2 D3 E4 A5
Sheet1
A B C D E F 1 A1 B2 C3 D4 E5 2 C1 C2 A3 B4 B5 「#REF!」 3 D1 D2 E3 A4 D5 4 E1 E2 D3 E4 A5 5
(アラン) 2023/10/05(木) 18:18:36
F1の数式は、Sheet0を参照していないし、 Sheet1のA〜Eは4行目までちゃんと出ているんですよね。 そうなると、例示の箇所がエラーになる気がしないんですけどねぇ・・
>Sheet0のAからE列の情報をIndirect関数で参照するようにしました。 一体、どんな数式なんですか?
(半平太) 2023/10/05(木) 20:49:38
F1=TOROW(FILTER(Sheet2!$B$1:$B$7,COUNTIF(sheet0!A1:E1,sheet2!$A$1:$A$7),""))
Sheet0のAからE列をそれぞれSheet1に参照しているIndirect関数は下記となります。
=IF(INDIRECT(Sheet0!A"&ROW())="","",INDIRECT(Sheet0!A"&ROW()))
(アラン) 2023/10/05(木) 21:34:27
>F1の関数は下記のようになります。 >F1=TOROW(FILTER(Sheet2!$B$1:$B$7,COUNTIF(sheet0!A1:E1,sheet2!$A$1:$A$7),""))
でしたら、元の数式に戻せばいいんじゃないですか?(それでどんな問題が起きるのかこちらは分からないのですけども) ↓ F1 =TOROW(FILTER(Sheet2!$B$1:$B$7,COUNTIF(A1:E1,Sheet2!$A$1:$A$7),""))
(半平太) 2023/10/05(木) 22:09:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.