• ベストアンサー

【エクセル】以下のA列からB列を導き出す数式を教えてください。

【エクセル】 以下のA列からB列を導き出す数式を教えてください。   A   B 1 014 014 2 002 002 3 001 001 4 001 007 5 001 003 6 007  7 002  8 003  9 001  「重複しているものは上につめて表示」、「一度拾い出した値は不要」とさせたいのです。 フィルタを使えばそれらしく出来たのですが、A列の値を変更してもB列に反映されないので フィルタを使わない自動的なものを求めています。 ご存知の方どうかよろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

No1さんと同じですが、 1)C1に=IF(COUNTIF($A$1:A1,A1)=1,ROW(),"")として下方向にコピーして、最初に出てきた番号の行に行番号表示 2)B1に=INDEX(A:A,SMALL(C:C,ROW(A1),1)を入力して下方向に必要分コピー(エラー処理なし) の方がわかりやすいかな。

lightland
質問者

お礼

ありがとうございます!上手くいきました。 COUNTIFは良く使うのですが、使わない関数っていうのはまったく使わないもので、INDEX、SMALL、ROWは初めて使いました。 とても勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

作業列を使用する方法ですが如何でしょうか。 (1)C1に=COUNTIF($A$1:A1,A1)として下方向にコピー (2)B1に=IF(COUNTIF(C:C,1)>ROW(A1)-1,INDEX(A:A,SMALL(IF($C$1:$C$100=1,ROW($A$1:$A$100),9999),ROW(A1))),"")を入力して下方向に必要分コピー   配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。

lightland
質問者

お礼

早速のご回答ありがとうございます。 実際の行数は1000を超えることもあるのでshift+ctrl+enterはちょっと厳しいです… でもとても勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelの数式の自動変更について

    excelの数式で困っています。 以下のようなシート1があります。 シート1 │A B C ─┼──── 1│a b c 2│d e f 3│g h i シート2で、以下の数式でシート1の値"e"を参照しているセルがあります。 =シート1!B2 この式では、シート1に行や列を挿入しても、"e"の値があるセルを参照したままになるように、数式が自動的に変更されます。 そうではなく、以下の条件を満たすような数式に変更したいと思っています。 ・1行と2行の間に行を挿入  →数式が自動変更され、"e"を参照したままにする ・A列とB列の間に列を挿入  →数式は変更されず、元々"e"があった場所を参照する 何かよい方法はないでしょうか? 回答よろしくお願いいたします。

  • エクセルの数式についてお尋ねします。

    数千個の単語帳を逐次ソート、整理しています。 =IF(($A9=$A10)*AND($B9=$B10),"★","○ ") A列に英単語とB列にそれに対応する日本語を入力しました(2行目以下)。 数千個の単語帳ですので、重複があります。それで、データ並び替えで整列させたあと、上下の同一セルをチェック、異なれば○、同一であれば★をC列に表示させました。 上は、セルC9の数式です。 今度は、C列を見ていくのですが、これが面倒ですので、セルC1に、その下のC列上の★マークの数を表示させたいのですが、可能でしょうか。 C列(2行目以下)には、上の数式が入っています。 よろしくお願いします。

  • エクセルでA列-B列=C列 の抽出方法について

    エクセルの初歩的な質問になってしまうかもしれませんが A列の値からB列の値で重複する値を削除して C列を作る方法を教えてください。 A列 a b c d B列 c d から 結果 C列 a b のような結果が得られる処理方法を お願い致します。

  • エクセルでA列B列C列の重複するレコードのみを表示

    エクセルのA列とB列とC列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列とB列とC列にそれぞれ1000行くらいのデータがあります。 それぞれの列内には重複レコードがあります。 この条件の中で 「A列とB列とC列に重複するデータすべて」 を抽出したいのですが、どんな方法がありますか。 抽出されたデータで重複レコードの場合は1件のみで表示したいです。 よろしくお願いします。 例   A   B   C   抽出  1-001-002--002--002 2-002-002--005--007 3-003-007--007--008 4-007-008--008--011 5-008-008--010 6-008-010--011 7-011-011--012 8-013-014--013

  • エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させた

    エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列に約1,000行くらいのデータが有ります。 このA列内で重複レコードがあります。 B列に約1,000行くらいのデータが有ります。 B列内でも重複レコードが有ります。 この条件の中で (1)A列にもB列にあるデータすべて (2)A列にしかないデータすべて (3)B列にしかないデータすべて を抽出したいのですが、どんな方法がありますか? それで (1)をC列 (2)をD列 (3)をE列 に並べて表示させたいです。 さらに抽出されたデータで重複レコードの場合は1件のみで表示したいです。 複数の操作を繰り返すのではなく C,D,E列に式を入れるだけで済ませる事は可能でしょうか? よろしくお願いします。 例    A   B    C   D   E 1-001-002--001--004--007 2-002-002--002--006--008 3-001-001--005--010 4-005-007 5-001-005 6-004-005 7-004-008 8-010-007 9-006-007 A列には001が3個、002が1個、005が1個有ります。 B列には001が1個、002が2個、005が2個有ります。 A列にもB列にも有るのは、001と002と005ですから これがC列に表示されます。 でそれぞれA列にもB列にも複数有りますが、1個として判定なので よって、C列には 001 001 001 001 002 002 005 005 と表示ではなく 001 002 005 と表示したい。 次にD列はA列に有る物だけですから 004 006 010 となります。B列には004は2個有りますが同じ値なので 004 004 006 010 では無く004は1個の表示です。 E列はB列のみのデータなので 007 008 です。 同じくB列には007が3個有りますが1個ともなします。 007 007 007 008 では無く 007 008 です。

  • エクセルで数式が働かなくなりますが?

    エクセルで数式を正しく入力して(例:=a1*b5+a2*b6+a3*b7)結果が反映されません。前回は正しく働いていた表で、あるセルの数値を変更すると、その変更を反映した計算結果が表示されるはずですよね。書式→セル→表示形式で確認するとちゃんと「数値」になっているのですが。これはどういうことでしょうか、解決方法を教えてください。

  • EXCELの数式(関数?)で小数点以下が0の場合

    EXCELの数式(関数?)で小数点以下が0の場合 省略されてしまうのを省略されないようにしたいのです 例えば 添付ファイルですが A6の値が4.520ですが J列に数式(関数?)をいれると A6の値が4.52になってしまうのですが これを4.520という表示になるようにできないでしょうか? (これをautocadに落とした時に 小数点以下の0が抜けるのがまずいので)

  • エクセルの行にあるものを列にする数式

    エクセルの数式を使って、行に入っているものを別のシートの列に入力することについて質問です。 例(シートA)    A  B  C  D 1  月 火 水 木 2  10 20 30 40 ABCDが列番号、1,2が行番号です。 このように入力したシートがあります。 そして、違うシートには下のように入力したいのです。 例(シートB)    A  B  C  D 1  月 10 2  火 20  3  水 30 4 木 40 (ずれてしまってすみません) シートBの『10,20,30,40』のところに数式を入れたいのですが、シートAに入力した時に、シートBにそのまま反映されるようにしたいのです。 ちなみに、シートBのB1(10となっているところ)に『=シートA!A2』と入力して、それをシートBのB列全体にコピーすると、シートAのA列部分を縦によんでしまうので、反映されません。 シートAでは横によんでいって、それをシートBでは縦に表示する、というところです。 このような説明でわかりましたでしょうか? $マークも使って絶対値もやりましたが、それでもダメでした。 いい方法をご存知のかた、よろしくお願いいたします。

  • 【エクセルの数式を教えて下さい】

    【エクセルの数式を教えて下さい】 エクセルで、A列を参照して、B列に次のように反映させたいです: A列 A1 apple A2 a banana A3 a cup of tea B列 B1 a B2 b B3 c スペースを含まない文字列の場合は、最初の一文字を、スペースを含む文字列の場合は、最初のスペースの次の一文字を返す数式を作りたいのです。 countif や find を使って作れるかと思ったのですが、自分のレベルではダメでした。 関数が出来る方、教えて頂けますか? よろしくお願い致します。

  • =A1といった簡単な数式が・・・

    セルに数式を打ち込みますが、何かの拍子に、数式を読まなくなります。 たとえば、=A1といったような数式も、セル内にそのまま"=A1"と表示されます。数式を変更したりすると、おかしくなるようです。 いったんセル内がおかしくなると、どのような数式を入れても、そのままの文字列としてしか表示されません。 同じシート内の他の未使用のセルで数式を入れると機能しますが、数式をいじると、文字列表示になってしまい、元に戻りません。 久しぶりにエクセルの数式を使いましたが、入り口でつまずいています。 助けてください。

専門家に質問してみよう