• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの関数(抽出)について)

エクセルの関数(抽出)について

このQ&Aのポイント
  • エクセルで特定の条件に一致する値を抽出する方法について教示してください。
  • 具体的には、特定のセルに入力した値と完全一致する値が存在する場合、その値がある行の別のセルの値を抽出したいです。
  • 並び替えをせずに、3000行以上のデータに対応できる方法が望ましいです。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

行と列が何だか判りにくいですが、添付の図ではD4セルに↓の式を入れて居ます。 =IF(C1="","",OFFSET(B$1,SUMPRODUCT(MAX((A$1:A$3000=C1)*ROW(A$1:A$3000)))-1,0)) ただ、3000行もやると遅くなるかもしれません。

chesty777
質問者

お礼

ものすごく早い回答、ありがとうございました。 大変参考になりました。

その他の回答 (3)

回答No.4

もう一案 =IF(D1="","",INDEX(C1:C8,LOOKUP(2^20,ROW(B1:B8)*(B1:B8=D1))))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

複雑な式を使うと計算が重くなります。分かり易く簡単な方法は作業列を作って対応することでしょう。 表がNo1さんのような表になっているとしてC1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",A1&COUNTIF(A$1:A1,A1)) D1セルから下方には求めたいA列にある文字列を入力します。例えばD1セルに「あ」と入力します。 E1セルには次の式を入力して下方にオートフィルドラッグすればよいでしょう。 =IF(D1="","",INDEX(B:B,MATCH(D1&COUNTIF(A:A,D1),C:C,0)))

chesty777
質問者

お礼

ありがとうございました。 大変参考になりました。 ファイルの重さにまで配慮頂き、助かりました。

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

一例です。 =IF(COUNTIF(B:B,D1),INDEX(C:C,MAX(INDEX((B:B=D1)*ROW(B:B),))),"")

chesty777
質問者

お礼

ありがとうございました。 大変参考になりました。

関連するQ&A