• 締切済み

表から条件の合う値を取り出す方法

EXECL初心者です。 お手数お掛け致しますが宜しくお願い致します。 関数にて表から摘出したいのですが方法が解りません。 ご教授願います。 (1)画像のC列のC1行の「1A」を選択する。 (2)B列のB3行の「B」を選択する。 結果=C列のC3の「1」を返す。

みんなの回答

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.8

ワークシート関数では実現できないと思うので、ユーザー関数 InterCell を作ってみました。 まず、以下のコードを ThisWorkbookにコピーしてください。 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Sh.Calculate End Sub 次に、以下のコードを標準モジュールにコピーしてください。 Public Function InterCell() As Variant Dim rng1 As Range Dim rng2 As Range Set rng1 = Range("C1:D1") Set rng2 = Range("B2:B11") With Selection If .Count = 2 Then If (Not Intersect(.Areas(1), rng1) Is Nothing) And (Not Intersect(.Areas(2), rng2) Is Nothing) Then InterCell = Cells(.Areas(2).Row, .Areas(1).Column).Value ElseIf (Not Intersect(.Areas(1), rng2) Is Nothing) And (Not Intersect(.Areas(2), rng1) Is Nothing) Then InterCell = Cells(.Areas(1).Row, .Areas(2).Column).Value Else InterCell = CVErr(xlErrRef) End If End If End With Set rng1 = Nothing Set rng2 = Nothing End Function 最後に、結果を返したいセルに以下のように入力して下さい。 =InterCell() 1つ目のセルを選択し、ctrlキーを押しながら2つ目のセルを選択して下さい。 InterCell を入力したセルに結果が返ります。 選択した2つのセルが有効範囲("C1:D1","B2:B11")にない場合は#REF! エラーが起きるようにしてあります。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.7

[No.6] について なるほど、そういう方法もあるのですね。 1つ勉強になりました(使いどころが思い付きませんが)。 で、質問の場合は、2つのセルを指定しなければならないので、この方法ではダメですよね。。。たしかに微妙です。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.6

> おそらく、選択したセルを取得する関数は存在しません。 > ご存じの方がおられれば、フォローをお願いします。 微妙なところですが 選択したセルをダブルクリック(もしくはF2)してエンターでそのセルのアドレスが取得できます。 =ADDRESS(CELL("row"),CELL("col"))

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.5

何がしたいのか理解できないのですが。。。 おそらく、選択したセルを取得する関数は存在しません。 ご存じの方がおられれば、フォローをお願いします。 で、もしも、C列と3行の交点セル(C3)の値を得たいのであれば、結果を返すセルに =C3 と入力すれば良いだけですが、まさかね(笑)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

初診者らしく、説明が普通と違うようで、よく意味が分からない。 (1)関数を使って達成する方法が、初心者にとってやさしいとは言えない。 VBAのSQLなどを使い、AND条件の仕組で検索するということがよく行われる。 (2)初心者はまず、エクセルの操作で実現する方法を考えるべきと思う。    (本件では、抜出し問題、抽出問題というパターンらしいが)エクセル は、まずそういうソフトだと思う。 「フィルタ」とかがまず考えるべきことと思う。 ーー 取り出す、抽出するための条件は、普通は「セルの値(数値、文字列)」で、シート上のセルに置いて、指定する場合が多い。そのセルが入っているセルを設けるということ。 データの中のデータから割り出して抜き出すのは、例えば最大値の、成績者氏名を取り出すなどのパターンはあり得るが。 まあ、3年B組の田中の今回の成績を抜き出すなどのパターから考える場合が多いと思う。 この質問のように、「選択する」という質問にはしない。 選択する、というのは、操作の説明に出てくるもの。 すなわち、データのある範囲外の、例えば、E1セルとF1セルに 「XX]と{YY]という値を入れて(指定して)それを使って関数式を組み立てるのです。 ーー 関数では、該当が2つ以上ある場合、すべて列挙するなどは、作業列を使わないと、式が複雑で、とても初心者が思いつける式ではないことを知っておくとよい。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

関数で選択したセルの場所2か所は得られないので (1)画像のC列のC1行の「1A」を選択する。 代替え案 E1に1Aを入力 (2)B列のB3行の「B」を選択する。 代替え案 F1にBを入力する 結果を表示したいセルに =INDEX(C2:D11,MATCH(F1,B2:B11,0),MATCH(E1,C1:D1,0))

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.2

=HLOOKUP("1A",B1:D11,3,FALSE)

  • sknbsknb2
  • ベストアンサー率38% (1158/3030)
回答No.1

E列に入れた値をキーにしてC列の値をF列に表示します。

関連するQ&A

専門家に質問してみよう