- ベストアンサー
エクセルの関数で
こんにちは。エクセルの関数でこんなことはできないでしょうか。 A列にある数値とB列にある数値で共通のものを拾い出してC列に返すというものです。 例えば、A列に2,4,6,8,10,12,14,16,18,20 B列に3,6,9,12,15,18が入力されていたとき、C列には6,12,18が返されるようにしたいのですがいかがでしょうか。 エクセルでなくてもこうすればできるよっていうのがあればそれでも構いません。例では2と3の倍数を書きましたが実際は法則性の無い数値がたくさんあるものと考えてください。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
関数ですと、下記のような感じでは。 下記の式をC1から必要分コピーする。 =IF(ISERROR(MATCH(B1,$A$1:$A$10,0)),"無",B1) A列にB1と同じ値があれば、B1を表示して、 なければ、「無」を表示します。 一致する値のみ上から順に表示するのであれば、マクロにですかね。
その他の回答 (5)
1.セル C1 に次の配列数式を入力 {=SMALL(IF(COUNTIF(A$1:A$10,B$1:B$6),B$1:B$6,""),ROW())} 2.セル C1 を次の“ユーザー定義”で書式設定 数式が =ISERROR(C1) フォント色 白 3.セル C1 を下方にズズーッと複写
- imogasi
- ベストアンサー率27% (4737/17069)
A列内で同じ数字が現れないとする。 B列も同じとする。 A2:B11に A列 B列 1 2 3 1 5 5 6 4 7 8 23 7 44 9 2 10 8 12 9 6 C列C2に =COUNTIF($A$1:$A$10,B1) と入れてC11まで式を複写する。 結果 1 1 1 0 1 1 1 0 0 1 同じものがあれば1以上、なければ0です。 そこで式を少し変えて、D2 に =IF(COUNTIF($A$2:$A$11,C2)=0,"",MAX($D$1:D1)+1) と入れて下方向に式を複写する。 1 2 3 4 5 6 7 となり、おなじ値がある行に連番を振りました。 この1をSheet2の第1行に、2をSheet2の第2行に、・・ を持ってくる方法は、私の回答の中にあるimogasi方式を見てください 。沢山類似例が有ります。 Sheet2のA1は =INDEX(Sheet1!$B$2:$B$10,MATCH(ROW(),Sheet1!$D$2:$D$10,0),1) これを下方向に式をD列の最大数行複写してください。
- Nouble
- ベストアンサー率18% (330/1783)
=IF( ROWS($A$1:$a$10) > ROWS($B$1:$B$6), IF( SUMPRODUCT( ISERROR( MATCH($A$1:$A$10,$F$9:$F$18,0) ) +0 ) < ROWS($E$9:E9), "", SMALL( INDEX( ISERROR( MATCH($A$1:$A$10,$F$9:$F$18,0) ) *65555 +$A$1:$A$10 , ), ROWS($G$9:G9) ) ), IF( SUMPRODUCT( ISERROR( MATCH($A$1:$A$10,$G$9:$G$14,0) ) +0 ) < ROWS($E$9:E9), "", SMALL( INDEX( ISERROR( MATCH($F$9:$F$18,$G$9:$G$14,0) ) *65555 +$F$9:$F$18 , ), ROWS($F$9:G9) ) ) ) とセルに入力 同セルを必要量下へコピー 共通要素の一覧が現れます
- mshr1962
- ベストアンサー率39% (7417/18945)
関数でなくて良いなら、一番上に同じ項目名をセットして 「データ」「フィルタ」「フィルタオプションの設定」で 抽出先を「指定した範囲」 リスト範囲をA列の範囲 抽出条件範囲をB列の範囲 抽出範囲をC列の先頭 でOKすればA:B列の共通する数字や文字をC列に抽出できます。
- ham_kamo
- ベストアンサー率55% (659/1197)
もっとスマートな方法があるかもしれませんが、とりあえずできたので回答します。 C1に以下の数式を入れ、配列数式なのでCtrl+Shift+Enterで確定させ、下にコピーしてください。 データが100行以上あるときは、適当に修正してください。 =IF(ISERROR(SMALL(IF((COUNTIF($B$1:$B$100,$A$1:$A$100)),$A$1:$A$100),ROW())),"",SMALL(IF((COUNTIF($B$1:$B$100,$A$1:$A$100)),$A$1:$A$100),ROW()))
お礼
できました!ありがとうございました(*^_^*)