• 締切済み

EXCELで文字列を結合して数式を処理したい

LOOKUP関数を以下のように複数セルにわけて文字列として配置します。 A1:LOOKUP(AL17,'C:\Documents and Settings\My Documents\ファイルA.xls] A2:シート1 A3:'!$A$3:$A$200,'C:\Documents andSettings\My Documents\.xls] A2:シート1 A4:'!$B$3:$B$200) A1からA4までを文字列結合してA5に表示します。 A5:=A1&A2&A3&A2&A4 その上で、A5の数式をA6にて処理したいのですが、うまくいきません。 A6:indirect(A5) のように書いてもエラーとなります。 どなたか打開策を教えてください! #今回はlookup関数の参照するシート名を動的に表現したかったため、   わけて記述し、文字列結合するという形式にしています。   (ここでいうA2がシート名)

みんなの回答

  • cab6067
  • ベストアンサー率0% (0/0)
回答No.2

> #今回はlookup関数の参照するシート名を動的に表現したかったため、 >   わけて記述し、文字列結合するという形式にしています。 A1: Book1.xls ... ファイル名 A2: Sheet1 ...... シート名 A3: 5555 ........ 検査値 A4: A1:A12 ...... 検査範囲 A5: B1:B12 ...... 対応範囲 とすると、答は A6: =LOOKUP(A3,INDIRECT("["&A1&"]"&A2&"!"&A4),INDIRECT("["&A1&"]"&A2&"!"&A5)) かなぁ~。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

検証してありませんが、式を表す文字列を式として実行するユーザー定義関数です。使い方の例は、参考URLをご覧下さい。 Function myEvaluate(target As String) As Variant myEvaluate = Application.Evaluate(target) End Function

参考URL:
http://okwave.jp/qa4238289.html

関連するQ&A

  • 結合した文字列をファイル名に使えない

    Excel上に入力されているパス名とファイル名のデータを組み合わせて、 様々なファイルを開いたりコピーしたりするVBAのコードを作ろうとしています。 仮にシート上のA1セルに、C:\Documents and Settings\デスクトップ というパス名 A2セルに URIAGE.xls というファイル名が入力されていたとして、 A1の文字列データとB1の文字列データを結合する場合、 Sub FileSousa()  Dim a As String  Dim b As String  Dim c As String  a = Cells(1, "A").Value  b = Cells(2, "A").Value  c = Chr(34) & a & "\" & b & Chr(34)  Range("A3") = c としてみると、確かにA3セルには、"C:\Documents and Settings\デスクトップ\URIAGE.xls" と出力され、文字列が結合されたことがわかるのですが、その変数cのデータを使って  Workbooks.Open Filename:=c として、そのファイルを開こうとすると、ファイル名が見つからないとしてエラーになります。 ファイルはデスクトップ上の確かにその名前で存在しており、直接 Workbooks.Open Filename:="C:\Documents and Settings\デスクトップ\URIAGE.xls" とすると開きます。 " を Chr(34)によって入力したのがいけないのでしょうか、 Workbooks.Open Filename:=××× には、変数を置いてはいけないのでしょうか。 そもそも文字列の結合は、"あ" & "い" → "あい" となるのが基本だと思うのですが、 a="あ"、b="い"、c=a&b → c="あい"として結合した変数cについては、ファイル操作上のファイル名の設定項目として使えないのでしょうか。

  • エクセル:数式の結合

    お世話になります。 A1セルに =B1 A2セルに =B2+C2 A3セルに =B3+C3+D3 ・・・ という式があるとします。 ここにそれぞれのF列の数式を追加したいと思います。 A1セル =B1+(F1の数式) A2セル =B2+C2+(F2の数式) A3セル =B3+C3+D3+(F3の数式) ・・・ となるようにしたいのですがどのようにすればよろしいでしょうか? 結果だけであれば足し合わせればよいのですが数式を書き換えたいというのが希望です。 (最終的にはA列の数式とF列の数式をあわせてひとつの列にしてしまいたいのです) 置換や関数ではどのようにしたらいいかわかりませんでした。 (マクロは手を出したことがありません) 文字列の結合ならCONCANTATE関数でできるのですが中の数式をうまく結合するには・・・ と考えていっても無理でした。 すみませんがお教えください。

  • Excelでの文字列抽出

    Excelで文字列の抽出とそれを並べる方法を教えてください。 関数だけを用いて実現できるのか、マクロを使わなければできないのかも分かりません。 この関数をこの様に使えばよいというのを教えていただけると幸いです。 やりたいことは、下記条件で、シート2のB列にシート1のG列~P列までに登録されている担当者名に該当するB列の店名を4店まで抽出したいのです。 分かりづらくて申し訳ございませんが、よろしくお願い致します。 ------------------------ シートが2枚(シート1/シート2)あります。 シート1  B列は4行毎に結合されており、店名が登録されています。  G列~P列までは1行目は担当者名、2,3,4行目は補足情報が登録されています。  シート2  A列に担当者名が入っています。(4行毎に結合しています)  B列にA列の担当者名に該当する、シート1の店名を4店まで登録したい。

  • Excel 文字列の結合について

    いつもお世話になってます。 Win2000 Office2000です。 文字列を結合するのに=A1&A2などで結合できますが片方が空白だった場合に空白を返すことは可能でしょうか? 正確には2行目が入ってたり入ってなかったりしてるので     A列   B列   C列 1行目 りんご イチゴ  桃 2行目 赤い       甘い これで=A1&A2と入れて他もフィルドラッグでやると 別シートA1:りんご赤い 別シートA2:イチゴ0 別シートA3:桃甘い これで「イチゴ0」となってますが空白にしたいのです。 探し方が悪かったのか過去ログで見つからず、お知恵を拝借できたらと思います。 よろしくお願い致します。

  • EXELで文字列の結合はどのように

    EXELで文字列の結合方法を教えてください。 A列にある文字列とB列にある文字列を結合したものをC列に入れたいのです。 例えば、A列「JAS」、B列「-123」で、C列「JAS-123」 というようにです。 よろしくお願いします。

  • Excel:条件付き文字列の結合方法

    Excel本当の初心者です。ヘルプなど使って、自分なりにがんばって 考えたのですが、やりたいことがどうしてもできず、お力を貸して ください! やりたいのは、下記の通りです。 Sheet1のような表があります。カテゴリー毎にID が 付いていて、表は20,000行位あります。 同じID(カテゴリー)のものは、C列の商品名を”、”で 結合して、1行にまとめたいのです。 Sheet2のような結果を得たいのです。 Sheet1 A列     B列     C列 ID      カテゴリー  商品名 12345    くだもの   りんご 12345    くだもの   みかん 12345    くだもの   イチゴ 67891    野菜     いんげん 23456    お菓子    チョコ 23456    お菓子    お煎餅 Sheet2 A列     B列     C列 ID      カテゴリー  商品名 12345    くだもの   りんご、みかん、イチゴ 67891    野菜     いんげん 23456    お菓子    チョコ、お煎餅 Sheet1のA列とB列を「フィルタの重複レコードを無視する」を したものをSheet2のA列とB列に貼り付けて、ISNUMBERとFIND を使ってと思ったのですが、Sheet2のC列で商品名の結合を"、 " で結合しようと思ったのですが、重複IDがない物もあれば、 10個も20個もあるものもあるので、CONCATENATEではできなくて... どんな関数を使えば良いのでしょうか? それと、事前にSheet1にフィルタをかけてSheet2に貼り付けたり ぜずに、Sheet2のA列とB列とも関数でやる事はできるのでしょうか? あともうひとつ、教えてただきたい事があります。 いつも一番上の行に式を入れて、下にドラッグすることで 下の行にコピーしているのですが、20,000行もあるので この方法だと大変なので、行数をしていして、コピーする 方法とかあれば教えてください! 一度にいくつもすみませんが、教えてくださると 嬉しいです。

  • エクセルで、列内の連続した文字を一気に結合したい

    エクセルで、列内の連続した文字を一気に結合したい どういうことかといいますと、例えば列内に Aさん Aさん Aさん Aさん Bさん Bさん Bさん Bさん Bさん Cさん Cさん Cさん Cさん Cさん という列があったとして、セルの結合を行い、一度に Aさん Bさん Cさん という風にしたいのです。 簡単に行える方法はないでしょうか。 よろしくお願いいたします。

  • Excelで参照用の文字列を数式にする方法

    少々分かりにくいとは思いますが、困っているので質問させて頂きます。 状況、A.xlsというファイルに1から100のシートがある状態です。 各シートのA1には名前が入っているのですが、ここから別のB.xlsファイルに名前の一覧を作成したいというものです。 B.xlsに表示させたい内容(CSVで表示) 番号,名前 1,シート1のA1に記入された名前 2,シート2のA1に記入された名前 B.xlsのB2には、='[A.xls]1'!A1 と入力すれば良いのですが100個分を一つ一つコピーするのは非常に面倒ですし、住所等の項目が増えたり、数も増える可能性があります。この数式自体を文字列操作で作成することは簡単なのですが、作成した文字列を数式として実行させることができないかと思い投稿しました。 または、上記を実現する簡単な方法があればとも思います。 よろしくお願いします。

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • 【エクセル】結合した文字列の検索について

    エクセルで、複数セルの文字列を「=A1&A2&A3&…」という感じで、B1セルに結合するとして、 例えばA2の文字列に「★」という文字が含まれているとします。 検索で「★」を指定した場合、A2のものは引っかかるのですが、B1の結合された文字列は引っかかりません。 B1セルの文字列も通常通り検索できるようにするには、B1セルでどのような処理をすれば良いのでしょうか。

専門家に質問してみよう