• ベストアンサー

Excel で他のセルの値を参照するには?

よろしくお願いします。 (使用:Excel2000、2003) Excelでは、例えば下記のようにセルに入力すると 他のセルの値を参照できます。 =A1 しかし、これでは1つのセルあたり1つのセルしか参照できません。 例えば、  セルA1:「abc_def_ghi」という文字列が入っている  セルA2:「jkl_mno_pqr」という文字列が入っている とします。 この状態で、セルA3にA1とA2から値を参照して 「abc_mno」(A1から「abc」をA2から「mno」を参照しています)と いったようにするにはどのようにすれば良いでしょうか? MS-DOSでバッチファイルを作成するときの環境変数のように 値を参照したいという意図です。 お手数ですが、ご存知のかたがいらっしゃいましたら宜しくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 最初の「.」までを抽出したり、2番目の「.」までを 抽出したり、 A1: abc_def_ghi A2: jkl_mno_pqr ※最初の「.」までを抽出したり、2番目の「.」までを抽出 =MID(A1&"_"&A2,1,FIND("^",SUBSTITUTE(A2&"_"&A3,"_","^",2))-1) 表示:abc_def ※2番目の「.」の次の文字から3番目の「.」の前の文字までを抽出 =MID(A1&"_"&A2,FIND("^",SUBSTITUTE(A1&"_"&A2,"_","^",2))+1,FIND("^",SUBSTITUTE(A1&"_"&A2,"_","^",3))-1) 表示: ghi_jkl_mno ------------------------------------------ 2番目の "_" を探す FIND("^",SUBSTITUTE(A1&"_"&A2,"_","^",2)) 3番目の "_" を探す FIND("^",SUBSTITUTE(A1&"_"&A2,"_","^",3)) ただし、 >MS-DOSでバッチファイルを作成するときの環境変数のように値を参照したいという意図です。 Excelで、上記に該当するのは、名前-定義のことですが、それとは、話が違うような気がしますね。

nao-k
質問者

お礼

ご回答ありがとうございます。 非常に助かっております。 教えてくださった内容で解決しそうです。 詳細はMID、FIND等の使い方を勉強してみます。 >Excelで、上記に該当するのは、名前-定義のことですが、それとは、話が違うような気がしますね。 仰るとおりかもしれないです。 すみません。

その他の回答 (4)

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

普通はFind関数でやるのでしょうが、_の数が多くなると、式が複雑になります。そこでユーザー関数を作ります。 VBEの標準モジュールに、下記のたった4行貼り付けておくと Function splt(s, n) a = Split(s, "_") splt = a(n - 1) End Function セルに =splt(a1,1) 第1番目 のようにすれば良くなります。 第2引数を1,2,3と変化させると 基データ  第1番目 第2番目 第3番目  abc_cd_de abc cd de asdf_s_dfg_frt asdf s dfg _as_a as a のように分離して取れます。 貼り付け操作は、下記は全てメニューの選択で ツール-マクロ-VBE VBE画面で 挿入-標準モジュール その画面に上記コードを貼り付け。

nao-k
質問者

お礼

ご回答ありがとうございます。 こういう方法もあるのですね。 試してみます。

  • akipapa
  • ベストアンサー率38% (34/89)
回答No.3

複数のセルから演算することは可能です。 下記ではいかがか。 =MID(A1,1,3) & MID(A2,4,6)

nao-k
質問者

お礼

ご回答ありがとうございます。

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.2

「例えば」の例だけでいうとA3セルに =LEFT(A1,3)&"_"&MID(A2,5,3) で、可能ですが具体的にやりたいことが判らないと質問者の欲しい回答は得られません。具体的には何がしたいのですか?

nao-k
質問者

お礼

ご回答ありがとうございます。 >具体的には何がしたいのですか? 教えてくださった関数を使えばできそうだと見えてきました。 具体的には、例えば下記のような値がセルに入っているとします。 A1:「abc.def.ghi.jkl」 A2:「abc_def_ghi_jkl」 A3:「abc def ghi jkl」 上記で、最初の「.」までを抽出したり、2番目の「.」までを 抽出したり、2番目の「.」の次の文字から3番目の「.」の前の文字 までを抽出したりということを、それぞれ「 」や「_」といった 文字や他の文字でもやりたいと考えています。 意図、通じますでしょうか?

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

望みの値を得るような計算式をセルに記述する必要があります。 例えば、 =A1 & B1 ――とすれば、「abc_def_ghijkl_mno_pqr」が得られます。 文字列の連結には演算子&が、文字列の抽出には、ワークシート関数RIGHT()やLEFT()等が利用できます。 詳しくはExcelのヘルプをご覧下さい。

nao-k
質問者

お礼

ご回答ありがとうございます。