• ベストアンサー

【エクセル】以下の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