[[20211124185659]] 『範囲の指定を関数で行えるのか』(yya) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『範囲の指定を関数で行えるのか』(yya)

関数の範囲指定を関数を使用して行えるのでしょうか。
私が試したところ、エラーメッセージが表示されます。

例えば、=COUNT($A$1:$A$2)
といった式を=CELL("address",A2)を挟ませて
【すなわち、=CELL("address",A2) イコール $A$2】

=COUNT($A$1:CELL("address",A2))しようとしています。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


やりたいことが見えてませんが。
まず、使えるか試してみましょう。

=sum(CELL("address",A2))

とか。

INDIRECT 関数?
(Youcan) 2021/11/24(水) 19:25


 質問に素直に答えると ↓ でしょうけど
 =COUNT(INDIRECT("A1:"&CELL("address",A2)))

 単に =COUNT(A1:A2) ではなんでダメなんですか?

 下にコピーするのなら
 =COUNT($A$1:A2)

 どういう状況でそういうことをしたいのか、具体的に説明してくれませんか。

 以上
(笑) 2021/11/24(水) 19:36

<まず、使えるか試してみましょう
使用できました。

ただ、私がやりたいのは範囲 A1:A2といった【:】を用いた範囲指定の場合に、関数を使用して範囲指定できるかということです。

ちなみに、私は今INDEXとMATCHを組み合わせた検索において、範囲内に同じ名称のアイテムがあった際に、どちらも〇行目のものを取り出そうとしています。

余談ですが、私はEXCEL勉強して1か月の身でして、excelの仕様がわかっていません...わかりにくい説明になってしまいます。すいません

(yya) 2021/11/24(水) 19:50


=INDEX(B26:E36,MATCH(G29,D26:CELL("address",OFFSET(D26,ROW(INDIRECT(CELL("address",INDEX(B26:E36,MATCH(G29,D26:D36,0),3)),TRUE))+1-ROW(INDIRECT(CELL("address",D26),TRUE)),0,,)),0),1)という式を作っています。

問題の部分は『【】』で囲む部分(下記参照)

=INDEX(B26:E36,MATCH(G29,『【D26:CELL】("address",OFFSET(D26,ROW(INDIRECT(CELL("address",INDEX(B26:E36,MATCH(G29,D26:D36,0),3)),TRUE))+1-ROW(INDIRECT(CELL("address",D26),TRUE)),0,,))』,0),1)

表には

【名前】【性別】【出身】【参加の有無】という列に対して11行のデータが入っています。

そしてMATCHで使用する空白セルを用意しています。ここに名前を入力します。

説明がわかりにくくすいません💦

(yya) 2021/11/24(水) 19:57


訂正、入力する所には【出身】を入れます。そして、データには同じ出身の人がいます。
INDEX/MATCHのみで検索する場合は、一番初めの列のデータが検索され、その行のアイテムが返ってしまい、そのあとにある同じ出身の人の名前が返ってきません。そこで、この式を作ろうと試みました。

【名前】【性別】【出身】【参加の有無】
田中    M  北海道   有
鈴木    M  東京     無
武田    F  北海道    無

【出身を入力してください】
北海道

【結果】
田中

↑これだと武田さんが表示されない

といった感じです。

(yya) 2021/11/24(水) 20:03


 COUNT 関数はどこへ行ったんですかね?
 質問が変わったんですか?

 ↓ なことをしたいのなら(G29が検索値、H列以降に結果表示)

	B	C	D	E	F	G	H	I	J	K
25	名前	性別	出身	参加						
26	田中	M	北海道	有						
27	鈴木	M	東京	無						
28	武田	F	北海道	無						
29						北海道	田中	M	北海道	有
30							武田	F	北海道	無
31										
・										
36										

 H29 =IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($B$26:$B$36)/($D$26:$D$36=$G$29),ROW(A1))),"")
 右・下コピー

 以上
(笑) 2021/11/24(水) 20:28

こんな関数があるんですね! 今感激しています。教えてくださりありがとうございます

ですが、質問内容は変わっておりません。私がCOUNTを例に出してしまい、混乱させてしまいましたね。(正直、礼に出せる関数だったらCOUNTでもCOUNTAでもCELLでもなんでもよかったです)

私のしたかったことはできましたが、素朴な疑問として、A1:A2をA1:【何かの関数でA1を間接的に返す】
ことで式は成り立たせる方法はあるのでしょうか
(yya) 2021/11/24(水) 20:44


 セル参照:セル参照の形になればよいので
セル参照を返す関数を使用すれば色々な方法が
有ります(使い事は有りません)
=A1:INDIRECT("A2")
=A1:INDEX(A:A,2)
=A1:IF(A1="",A2,A3)
=A1:CHOOSE(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
=INDEX(A1:A10,MATCH("A",A1:A10,0)+1):A10
(どん) 2021/11/24(水) 21:02

どんさん、ありがとうございます。

勉強になります

(yya) 2021/11/24(水) 21:50


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.