[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『XLOOKUP関数で複数の値を取り出したい』(右近)
お尋ねします。
以下のような表があります。
私としては、XLOOKUP関数を使って値を該当のセルに表示させたいのですが、
以下のように値が複数ある場合は、どのように修正すれば良いでしょうか?
よろしくお願いします。
Sheet1
__A_______B
1_太郎____4/9
2_花子____4/9
3_次郎____
4_海子____4/4
5_山子____
6_魚子____4/4
7_猪夫____4/11
Sheet2
A1=西暦
B1=月
A3以下は上記をもとに日付にしています。
以下の関数で一つは取り出すことができるのですが、複数ある場合は取り出せず困っています。
想定としては、同じ日付に5人は取り出せるようにしたいです。
B3=XLOOKUP(A3,Sheet1!$B$1:$B$20,Sheet1!$A$1:$A$20,"")
___A____B_____
1__2022_4
2
3__1
4__2
5__3
6__4____海子・魚子
7__5
8__6
9__7
10_8
11_9____太郎・花子
12_10
13_11___猪夫
:
< 使用 Excel:Office365、使用 OS:Windows10 >
↓ な感じでは? 試してませんけど・・・
B3 =IFERROR(TEXTJOIN("・",TRUE,FILTER(Sheet1!$A$1:$A$20,Sheet1!$B$1:$B$20=A3)),"")
ところで ↓ はどうなったんですか? [[20211119073818]]『縦列を集計させる方法』(右近)
以上 (笑) 2022/04/05(火) 21:47
↓ でよかったかも
B3 =TEXTJOIN("・",TRUE,FILTER(Sheet1!$A$1:$A$20,Sheet1!$B$1:$B$20=A3,""))
以上 (笑) 2022/04/05(火) 21:54
=TRANSPOSE(FILTER(Sheet1!A$1:A$20,Sheet1!B$1:B$20=A3,"")) (どん) 2022/04/06(水) 07:55
>実行しようとすると、その関数は正しくありません、と出てしまいます。 そんなふうに出る式には見えませんけど?
Excel でタテのデータをヨコにしたい【スピル編】 https://www.shegolab.jp/entry/excel-spill-transformation これの真ん中辺にある「リスト表からグループ表にスピる」を見てください。 同じことですよね? シートが同じか別かの違いはあっても・・・
>=TRANSPOSE(FILTER($C$2:$C$10,$B$2:$B$10=E2,"")) この式を下にコピーするだけで、右方向には勝手に展開する(スピル)と書いてあります。
なので ↓ をB3セルに入れて、下コピーだけでできるのでは? >=TRANSPOSE(FILTER(Sheet1!A$1:A$20,Sheet1!B$1:B$20=A3,"")) ※右方向にはコピーしないように
ところで ↓ が解決済みなら [[20211119073818]]『縦列を集計させる方法』(右近)
↓ も同じことですよね? [[20220405095407]]『色ごとの合計金額を計算したい』(右近)
以上 (笑) 2022/04/06(水) 13:19
笑さん、どんさんからお示しいただいた関数について、一つお尋ねです。
自宅はOffice365ですが、職場は2019なのです。365ではきちんと結果が出ました!素晴らしいです!しかも、笑さんがしっかり注意してくださったとおり、下にのみコピーするだけで、同じ日が増えたらきちんと表示してくれました!ただ、職場の2019ではエラーとなってしまうようです。どちらでも使用できるようにしたいのですが…
(右近) 2022/04/06(水) 18:54
=IFERROR(INDEX(Sheet1!$A$1:$A$20,AGGREGATE(15,6,ROW(A$1:A$20)/(Sheet1!$B$1:$B$20=$A3),COLUMN(A1))),"") 必要分→↓コピペ (どん) 2022/04/06(水) 19:51
B3 =IF($A3="","",IFERROR(INDEX(Sheet1!$A:$A,AGGREGATE(15,6,ROW($A$1:$A$20)/(INDEX(Sheet1!$B$1:$M$20,0,MOD($B$1-4,12)+1)=$A3),COLUMN(A3))),"")) 右・下コピー
こういうこと? (笑) 2022/04/06(水) 22:14
Sheet2
___A____B_________C‥F
1__2022_4
2
3__1
4
5__2
6
7__3
8
9__4____海子______魚子
10______1,500_____2,000
11_5
12
13_6
14
15_7
16
17_8
18
19_9____太郎______花子
20______2,000_____1,500
22_10
23
24_11___猪夫
25______3,000
:
64
(右近) 2022/04/09(土) 07:34
奇数行と偶数行で数式を分けます。
B3セルは前回のまま B3 =IF($A3="","",IFERROR(INDEX(Sheet1!$A:$A,AGGREGATE(15,6,ROW($A$1:$A$20)/(INDEX(Sheet1!$B$1:$M$20,0,MOD($B$1-4,12)+1)=$A3),COLUMN(A3))),"")) ※表の位置を変更するようなことがあっても、COLUMN(A3)は必ずA列のセル番地にすること
B4 =IF(B3="","",INDEX(Sheet1!$N$1:$Y$20,MATCH(B3,Sheet1!$A$1:$A$20,0),MOD($B$1-4,12)+1)) 表示形式「通貨」(記号:なし)
B3とB4、2つのセルを選択して右にコピー そのまま下にコピー
■Sheet2、A列の日付について どうやっているのか知りませんけど、一応言っておくと・・・
A3 =IFERROR(($A$1&-$B$1&-ROUNDUP(ROW(A1)/2,0))*1,"") 表示形式「日付」
A3とA4(A4は空白)、2つのセルを選択してA63まで下コピー ※ROW(A1) はA1セルの値を参照しているわけではないので セルの位置を変更するようなことがあっても「A1」はそのままで
以上 (笑) 2022/04/09(土) 09:34
こちらでは問題なく表示されているので、どこが問題かと言われてもわかりませんね。
名前は正しく表示されているのに、その下の金額がエラーになるということ? エラーになるのは全部なのか一部だけなのか、どっちですか?
エラーになるセルのセル番地(どの列の何行目か)と そのセルに入っている数式をコピーして提示してください。 複数あるのならそのうちの一つだけ。
ひとまず以上です (笑) 2022/04/09(土) 22:17
>エラーになるのは全部なのか一部だけなのか、どっちですか?
名前が表示されている箇所全部です。名前が空白の箇所はエラー表示されておらず、空白です。
>エラーになるセルのセル番地(どの列の何行目か)とそのセルに入っている数式をコピーして提示してください。複数あるのならそのうちの一つだけ。
B列の10行目です。複数あるうちの一つです。
(右近) 2022/04/09(土) 22:58
>そのセルに入っている数式をコピーして提示してください。
B10セルに入っている数式をコピーして提示してください。
以上 (笑) 2022/04/09(土) 23:17
___B___C___D
7__1___金
8
9__2___土
10
11_3___日
12
13_4___月__(名前)
14_________#N/A
(右近) 2022/04/09(土) 23:27
>D14=IF(D13="","",INDEX($Y$7:$AJ$26,MATCH(D13,$A$1:$A$20,0),MOD($B$1-4,12)+1))
別シートという話だったはずですけど、同じシート?
名前は「A1:A20」、金額は「Y7:AJ26」で合ってるんですか? では日付はどこ?(前の説明では「Sheet1!B1:M20」だった日付)
実際の表がどうなっているのかよくわかりません。
以上 (笑) 2022/04/10(日) 00:03
>名前は「A1:A20」、金額は「Y7:AJ26」で合ってるんですか?では日付はどこ?(前の説明では「Sheet1!B1:M20」だった日付)
名前=L7:L26
日付=M7:X26
金額=Y7:AJ26
これを前提に笑さんからご教授いただいた式を以下のように入れています。
その上で、D7とD8、2つのセルを選択して右にコピー、 そのまま下にコピーさせています。
D7=IF($B7="","",IFERROR(INDEX($L$7:$L$26,AGGREGATE(15,6,ROW($A$1:$A$20)/(INDEX($M$7:$X$26,0,MOD($B$2-4,12)+1)=$B7),COLUMN(A1))),""))
D8=IF(D7="","",INDEX($Y$7:$AJ$26,MATCH(D7,$A$1:$A$20,0),MOD($B$2-4,12)+1))
その結果、複数の箇所にエラー、その一つが、
D14=IF(D13="","",INDEX($Y$7:$AJ$26,MATCH(D13,$A$1:$A$20,0),MOD($B$2-4,12)+1))
になります。
よろしくお願いいたします。
(右近) 2022/04/10(日) 05:54
~~~~~~~~~ ~~~~~~部分を間違っていました。ここを名前の範囲に修正したところ、思い通りの結果が表示されました。 笑さん、ありがとうございます。 (右近) 2022/04/10(日) 06:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.