アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelに関してわからないことがあり、お力添えを頂きたく質問させていただきました。

Excelの知識はほとんどありません。MacのExcel2008を使用しています。

仕事で商品画像を使用する際に、お客様からいただいた原稿(Aとします)にある商品の品番と、自社でまとめている画像リスト(Bとします)の中にある品番の2つを照らしあわせ、一致している品番から画像番号を抽出しています。

その抽出する作業を現在は、原稿Aにある商品の品番をコピー→原稿Bにある品番の列でcommand+Fで検索→コピーした品番と一致した商品の別列にある画像番号を抽出。
この作業を1つ1つやっています。

これを簡略化できないかと思い、=MATCHを用いて
原稿Bの品番から原稿Aの品番と一致する行の番号を抽出することができました。

今後は抽出した行番号を、原稿AでF5キーを使いジャンプし、その行の画像番号を使用しようと
考えています。

しかし、この行程も自動で簡略化できないものかと思い質問させて頂きます。

=MATCHで抽出した行番号を検索、その行にある画像番号の列を別シートに抽出。
という作業を関数などを用いて自動でできないでしょうか?

前置きが長くなってしまい申し訳ありません、詳細に書いた方が良いかと思い…
よろしくおねがいします。

「Excelで指定した行を別シートにコピー」の質問画像

A 回答 (4件)

「セルに設定する数式を簡単にできないか」とのことですが、関数を組み合わせて数式を作る以上、難しいと思います。



今回やりたいことは、MATCH関数で求めた行位置を2か所の参照式で使いたいということです。
関数を使う以上、2か所の参照式で、それぞれ同じMATCH関数を書く必要があります。

これを回避するには、作業用の列を作って、MATCH関数で求めた行位置を一旦格納。目的のセルの参照式では、作業用列を参照するようにすれば、MATCH関数を重複して書く必要はなくなります。
しかし、分かりやすさという観点では、???です。

そこでお勧めなのが、ユーザ定義関数の作成です。
ちょっとしたVBAの知識があれば、簡単につくろことができます。

ちなみに、今回の要件を満たす関数は、こんな感じです。

Function MyLookUp(検索値 As Variant, 範囲 As Variant) As Variant
Dim Ro As Long
Ro = WorksheetFunction.Match(検索値, 範囲.Columns(範囲.Columns.Count), 0)
MyLookUp = 範囲.Cells(Ro, 1) & 範囲.Cells(Ro, 2)
End Function

使い方は、=MyLookUp(A1,Sheet1!A1:D5)
A1が検索値で、Sheet1!A1:D5が検索範囲です。
検索範囲の最右端の列を検索し、該当行の1、2列目の値を結合して返します。
検索値が見つからない場合は、エラーを返します。
    • good
    • 0

一番左側を検索するのであれば Vlookup関数では


=Vlookup($A$1,シート1!$A:$D,1,Flase)
B列表示は
=Vlookup($A$1,シート1!$A:$D,2,Flase)
C列の表示は
=Vlookup($A$1,シート1!$A:$D,3,Flase)
といった感じで
いちいち面倒くさいようであれば
=Vlookup($A$1,シート1!$A:$D,Column(A1),Flase)
にして、右へコピー
    • good
    • 0

こんにちは。

質問の内容をきちんと理解できずすみません。。

シート2に、ブランド名や商品名の情報も含めてを1つのセル内に反映するんですね。

もし、シート1に列を追加することが可能でしたら、必要な情報を&で繋いだ欄を作成して(E列に画像番号&ブランド名 を入れておく。等)、シート2では上記で作成した欄をOFFSETで参照するのはいかがでしょうか。

>もっと簡単な数式があるような気がしたので…
すみません、そこまで詳しい者ではなく、もっとキレイな式はわかりませんでした、、。
    • good
    • 0

こんにちは。


シート2のA2セルに品番が入力されているとして、
シート2のB2セルに以下の関数を入れると品番を反映できるかと思います。
=OFFSET(シート1!$A$1,MATCH($A2,シート1!$D$2:$D$12,0),0)

上記関数ですと、該当する品番が無い場合エラー表示になってしまうので、品番が無い場合は空欄にする数式を併せて記載いたします。
=IFERROR(OFFSET(シート1!$A$1,MATCH($A2,シート1!$D$2:$D$12,0),0),"")

ご質問の回答になっているといいのですが、、
ご確認くださいませ!
    • good
    • 1
この回答へのお礼

ご丁寧な回答ありがとうございます!
いただいた数式を元に、当て込んでみたのですが思うように上手くいきませんでした…
あともう少しの所まで来ているのにもどかしいです。

お聞きしたいのですが、
現在、シート1のA列にある商品番号をシート2に抽出する数式になっています。
この抽出する対象をA列+B列などにできるでしょうか?

すごく安直に
=OFFSET(シート1!$A$1,MATCH($A2,シート1!$D$2:$D$12,0),0)&OFFSET(シート1!$B$1,MATCH($A2,シート1!$D$2:$D$12,0),0)
と打てばできると思うのですが、もっと簡単な数式があるような気がしたので…

よろしくお願いします。

お礼日時:2016/02/02 23:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!