質問: エクセルで2列に入力された同一データを全て抽出したい 下の表でa列とb列に入力された「バナナ」を全て、すなわち1,2,3,5行目を抽出をしたいのです。 データ量が1000行を越すため、効率よく抽出する 方法を教えてください。 a b 1 バナナ みかん 2 りんご バナナ 3 バナナ バナナ 4 いちご みかん 5 バナナ いちご
回答: これも関数式だけでやるのは、ちと難しい。本日似た質問があったので改良で出来ましたが。 (例データ)a2:b10に(a1:b2は意味があってデータを入れないこと)c1は0をいれておくこと。a1:c10は下記。但し c2:c10は後述の関数式1の結果を先に掲出。 c列は作業列で、使わざるを得ないと思います。 a列 b列 c列 0 バナナ みかん 5 りんご バナナ 5 バナナ バナナ 5 いちご みかん 7 バナナ いちご 7 くり かき 10 みかん くり 13 メロン くり 13 キウィ 13 (関数式1)c2に =if(countif($a$2:a2,a2)=1,if(countif($a$2:$b$10,a2)>1,max($c$1:c1)+countif($a$2:$b$10,a2),max($c$1:c1)),max($c$1:c1)) といれる。c2以下最終行まで複写する。 (関数式2)e1に =index($a$2:$a$10,match(row()-1,$c$1:$c$10,1)) といれて、e2以下に複写する。c列の最終行の(最大値) 第13行まで複写する。 (結果)e1:e13に バナナ バナナ バナナ バナナ バナナ いちご いちご くり くり くり みかん みかん みかん となります。 ---- こんな式は過去にやったことがないと、直ぐには思い浮かばないでしょう。 vbaでやれば素直な仕組みのプログラムを組んで出来そうですが。