- ベストアンサー
○のついた行の数を表示させる
・・A・・B・・C・・D・・E・・F 1・・・・・・・2・・4・・5・・7 2・○ 3 4・○ 5・○ 6 7・○ 8 上記A列に○が表示されている行を抜き出し、その行数をC1~F2まで表示させたいのですが、できるでしょうか。 できればマクロを使わずROWやIF関数のみで教えていただければ幸いです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは~♪ zap35さんとあまり変わりませんが~。。 C1: =IF(COUNTIF($A:$A,"○")<COLUMN(A1),"",1/LARGE(INDEX(($A$1:$A$10="○")/ROW($1:$10),),COLUMN(A1))) 右にコピーします。 データ範囲は、変更してください。 。。。。Ms.Rinでした~♪♪
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の意味が、>行数をC1~F2まで表示させたいのですが、のところが判らない。 A2:B7に A列 B列 C列(関数式の結果) a b ○ 1 c d ○ 2 e ○ 3 f とあって、B列に丸のある行だけF列に抜き出す問題なら C列c2に=IF(B2="○",MAX($C$1:C1)+1,"") 下方向に式を複写。 G列に=INDEX($A$2:$A$7,MATCH(ROW(),$C$2:$C$7,1),1)と入れてG3 (3はC列の最大値)まで式を複写する。 結果G列 b d e (imogasi方式)
お礼
今回のパターンとはちょっと違いますが、教えての他サイトでimogasi方式を見させていただきました。何かの参考にさせていただきます。
- Nouble
- ベストアンサー率18% (330/1783)
こんなのは如何でしょうか? =IF(COUNTIF(A:A,"○")<ROW(A1),"",OFFSET($A$1,LOOKUP(1,{1},SMALL((A:A<>"○")*65535+ROW(AA),ROW(A1)))-1,COLUMN(A1)-1,1,1)) G1くらいに入力してそのままエンター で、BからFまで数字が入ってるなら G1をそのままG1:K1にコピーして さらにこのG1:K1を下にずるっとコピーしてください 全データー行数の1/2~1/3くらいコピーすれば事足りると思います P.S. うちの環境がなぜかA:Aという表記を最近#Num!として返すので 動作確認は取れていないのですが A1:A10とかの限定範囲ならちゃんと動作しているので excel2002以降のものなら問題なく動作すると思います
お礼
ごめんなさい。C1~F1の誤りでした。 やってみたのですが、#NUM!が出てしまいました。 これだけ難しい関数だと、意味がわからずどこがどのように違うのか修正できませんでした。 またよろしくお願いします。
- zap35
- ベストアンサー率44% (1383/3079)
#01です。質問を読み直しました。 行数とは行の番号のことで、C1~F2はもしかしたらC1~F1の誤りでしょうか。 C1セルに以下の式を貼り付けて、SHIFT+CTRL+ENTERで確定してください。またC1セルを右方向に必要分だけコピーしてください。 =IF(COLUMN()-2>COUNTIF($A:$A,"○"),"",SMALL(IF($A$1:$A$30="○",ROW($A$1:$A$30),""),COLUMN()-2)) データの範囲は$A$1:$A$30(2カ所あります)を修正願います
お礼
ごめんなさい。C1~F1の誤りでした。 やってみたのですが、#VALUE!が出てしまいました。 これだけ難しい関数だと、意味がわからずどこがどのように違うのか修正できませんでした。 またよろしくお願いします。
- zap35
- ベストアンサー率44% (1383/3079)
補足要求です >その行数をC1~F2まで表示させたいのですが 行数は「10行」のように一意ではないですか? 行数をC1:F2に表示させるとはどういう意味でしょうか?
お礼
ありがとうございます。ごめんなさい。C1~F1の誤りでした。 式の意味はよくわかりませんが、希望とおりの答えとなり、他シートへの応用もできました。 またよろしくお願いします。