• ベストアンサー

○のついた行の数を表示させる

・・A・・B・・C・・D・・E・・F 1・・・・・・・2・・4・・5・・7 2・○ 3 4・○ 5・○ 6 7・○ 8 上記A列に○が表示されている行を抜き出し、その行数をC1~F2まで表示させたいのですが、できるでしょうか。 できればマクロを使わずROWやIF関数のみで教えていただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • rin01
  • ベストアンサー率43% (33/76)
回答No.3

こんにちは~♪ zap35さんとあまり変わりませんが~。。 C1: =IF(COUNTIF($A:$A,"○")<COLUMN(A1),"",1/LARGE(INDEX(($A$1:$A$10="○")/ROW($1:$10),),COLUMN(A1))) 右にコピーします。 データ範囲は、変更してください。 。。。。Ms.Rinでした~♪♪

gajalin
質問者

お礼

ありがとうございます。ごめんなさい。C1~F1の誤りでした。 式の意味はよくわかりませんが、希望とおりの答えとなり、他シートへの応用もできました。 またよろしくお願いします。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

質問の意味が、>行数を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方式)

gajalin
質問者

お礼

今回のパターンとはちょっと違いますが、教えての他サイトでimogasi方式を見させていただきました。何かの参考にさせていただきます。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.4

こんなのは如何でしょうか? =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以降のものなら問題なく動作すると思います

gajalin
質問者

お礼

ごめんなさい。C1~F1の誤りでした。 やってみたのですが、#NUM!が出てしまいました。 これだけ難しい関数だと、意味がわからずどこがどのように違うのか修正できませんでした。 またよろしくお願いします。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#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カ所あります)を修正願います

gajalin
質問者

お礼

ごめんなさい。C1~F1の誤りでした。 やってみたのですが、#VALUE!が出てしまいました。 これだけ難しい関数だと、意味がわからずどこがどのように違うのか修正できませんでした。 またよろしくお願いします。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

補足要求です >その行数をC1~F2まで表示させたいのですが 行数は「10行」のように一意ではないですか?  行数をC1:F2に表示させるとはどういう意味でしょうか?

関連するQ&A