• ベストアンサー

エクセル関数 範囲指定で文字を連結する方法

セルA1に1、B1に2、C1に3が入力されている時に、 D1に関数「=A1&B1&C1」と入力すると123と表示されますよね。 これを範囲指定で文字を連結するには、どのような関数になるのでしょうか。 よろしくお願いします。

  • nopne
  • お礼率45% (1604/3490)

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

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

#3です。追加。 =CONCATENATE((A1,B1,C1)が(質問者の意図と少しづれるかもしれないが)標準かもしれない。 (1)セル数が10も20もないだろう (2)他の場合で、とびとびのセルでも使える (3)制限は30個までかもしれない(最新バージョンで確認してないが)。 (4)定数や文字列も挟める =CONCATENATE(A1,"と",C1)

nopne
質問者

補足

ありがとうございました。

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

>セルA1に1、B1に2、C1に3が入力されている時に、D1に関数「=A1&B1&C1」と入力すると123と表示されますよね。 その例では「数値の1と2と3を連結して文字列の123にする」と言うことになります。 >これを範囲指定で文字を連結するには、どのような関数になるのでしょうか。 数値の123を1桁ずつA1からC1へ入力したものを計算のために123と言う数値に変換するのであれば次のような数式で対応可能です。 =SUMPRODUCT((A1:C1),10^(3-COLUMN(A1:C1))) しかし、A1に"あ"、B1に"い"、C1に"う"と入力し"あいう"のように文字列の連結のみを行いたい場合は組込み関数がありません。 因って、ユーザー関数を作成することになるでしょう。

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

・VBAでユーザー関数を作ればできます。 標準モジュールに Function ketugou(a) 'MsgBox "AA" s = "" For Each ch In Range(a) MsgBox ch s = s & ch Next ketugou = s End Function と入れる。 Ketugouの部分は、VBAで使うキーワードやエクセル関数的なものでなければよい。 答えを入れるセルに =ketugou("A1:C1")  "セル範囲を”で囲んでください。 ーーー 各セルが0-9(1桁の数字)に限られるなら =SUMPRODUCT((A1:C1)*{100,10,1}) でできそうです。これを文字列化して =TEXT(SUMPRODUCT((A1:C1)*{100,10,1}),"######") これも、限定があり、定数をその都度作る必要があり、苦しい答えですね。 ーー ・他にないか考えてみますがむつかしそう。

nopne
質問者

補足

ご親切にどうもありがとうございました。

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

私の常套手段は添付図のとおりです。 1.列Aの左に1列挿入 2.セル B2 に式 =A2&B1 を入力して、此れを右方へズズーッとドラッグ&ペースト

nopne
質問者

補足

ありがとうございます。 マイナス評価が付いてますが、私は良いご回答だと思います。 私の目的には使えませんが、このような発想は今後のために覚えておこうと思いました。

回答No.1

標準の関数では無かったハズ。 VBAでユーザー定義関数を作ってってのが一般的な対応方法です。 セル範囲を指定して文字列を結合・連結するユーザー定義関数:エクセルマクロ・Excel VBAの使い方-ユーザー定義関数 http://www.relief.jp/itnote/archives/001342.php Excelで複数セルからの文字の結合 - オフィス系ソフト | 教えて!goo https://okwave.jp/qa/q1614403.html

nopne
質問者

補足

ありがとうございました。 勉強になりました。

関連するQ&A

  • EXCEL 行と列を指定して、範囲指定する方法

    EXCELの使い方を教えてください。 関数で試みているのですが、以下のような操作を行うことは可能でしょうか? (マクロ(VBA?)は使用したことがないため、抵抗があります。それでも、マクロを組むしかないというのであればその方法も教えてください。) 「表示シート」にて行と列を指定することで、 結合された5行×5列の表を表示させたいのです。 指定するセルも結合させており(「入力シート」)、 結合されたセル(行/列)を指定して、表示する範囲を決めてやりたいのです。 結合を解いて、たくさんの文字を指定する形にしてしまえば楽かもしれないのですが、この2文字だけで他にもたくさん処理させているため、 指定する文字はこの2文字のみで処理させたいです。 自分なりには、「表示シート」のD10セル(F10まで結合されている)に =INDEX(SUMPRODUCT((入力!B3:B27=表示!D4)*(入力!C2:Z2=表示!D3)),1,2) というような関数を組んでみたのですが、うまく表示されません。 なにか、うまく表示させる方法はあるのでしょうか? ちなみに、表内の犬など狐などは便宜的に書いているだけで、 数字が入るセルか、日付が入るセルか、文字列が入るセルかということだけが汲み取っていただければと思います。 入力するセルと表示させるセルの大きさも異なるようにしたいので、 良い方法があれば教えてください。 よろしくお願いいたします。

  • Excel での範囲指定を引数とした文字列連結

    Excel でA1からA10に何らかの値が入っているとします。 別のどこかのセルにA1からA10の値を連結して出したいのですが、 VBA不使用で範囲指定「A1:A10」を引数にして行う方法を探しています。 &とCONCATではセルを一つ一つ連結する方法でしかできないと思いますが、 他の関数を組み合わせてできないものでしょうか?

  • エクセルの関数でセルの隣のセルを指定する方法

    セルC1の計算式を=A1+(C1の左隣のセル)と指定することは可能でしょうか? なんでかというとAとBの間にセルを挿入したときにもこのC1の計算式は=A1+B1と計算したいのです。 その場合にINDIRECT関数をつかっていたのですが、もしこの挿入したセルが空の時にはA1+B1のままではなくA1+C1(移動してB1がC1になった)にしたいからですが、 なにかよい方法があったら教えて下さい。 説明がわかりづらくて ごめんなさい 1)A1に10をB1に20を入力しておきます。 2)C1に10+20の30が表示(何らかの計算式) 3)AとBの間にセルを挿入 4)新しいB1せるに5を入力 5)D1(C1が移動した)には15が表示 6)もしB1に何も入力しなかったらD1は30を表示 こんなのって可能でしょうか? この何らかの計算式をアドバイスください よろしくお願いします。

  • Excel 関数での範囲指定

     Excelでの関数計算は、ほとんど使用した事の無い初心者ですが、もし分かれば教えてください。 あるアプリケーションソフトにパラメーターを投入し実行させるとExcelにて表が出来ます。この表のある列の関連するものを他のある列で指定したものが有るか無いか LOOKUP関数を使用して結果を見ようと思います。しかし、計算を実行するごとに結果を出したい範囲が変わります。簡単に、関数内の範囲指定をする方法は無いでしょうか。    A    B    C    D    E 1  ミカン  100   南      10 2  リンゴ   150   北    15 3  ミカン   200   南      20 4  バナナ   250   南      30 5  ミカン   300   南      55 リンゴ有り 例えば、上のような表が出来今回は、B列の100~200(B列は連続して範囲指定できる)までの範囲を決め A列に「リンゴ」があれば、「リンゴ」とどこかのセルに表示させる。 説明がうまく出来ずわかりにくいかもしれませんがよろしくお願いします。(要は、関数内の範囲指定を他から指定する事は出来ないかなあ)

  • EXCEL 指定範囲内の空白セルに特定数だけ文字を入力するマクロ教えてください。 

    マクロ初心者です。 指定範囲内の空白セルに特定数だけ文字を入力するマクロを考えていますが、まったくわかりません。どなたか教えていただけますか? 詳細内容 (1)下記のような空白セルを含む範囲内        A B C D       1  A君       2       3A君  B君       4  C君  (2)別セルでA君に1追加するとA君が表示上追加される        A B C D       1  A君  A君←どこでも空白セルならいい       2       3A君  B君       4  C君 

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • EXCELの関数

    A10セルからA20セルまでの範囲でXを入力し、さらに、C10セルからC20セルまでの範囲である任意の金額(たとえば¥10000など)を入力した時のみの合計個数をD1セルに表示させたいのですが、関数を教えてください。よろしくお願いします。

  • EXCELから文字だけ抽出する方法を教えてください

    タイトルの通りですがよろしくお願いします。 どのような状態かといいますと セルA1、セルB1、セルA2、セルB2に文字が入力してあるとします。 セルC5に次のような関数を入力して(A1,A2,B1,B2)に入力した文字を結合します セルC5:=A1&A2&B1&B2 このセルC5に表示されているのは、関数によって合わせた文字が表示されていますが、この表示されている文字をコピーしようとするとセルを右クリックしてワードに貼り付けてセルの枠を消してから文字を取り出すことになります。 当たり前ですが、セルC5をダブルクリックすると関数が現れてしまうので、文字をコピーすることはできません。 上のように長く書きましたが VBSでもEXCELの関数でもいいので、 セルC5に表示している文字をクリップボードニコピーする方法を教えてください。 たとえばVBSならコマンドボタンを作ってコマンドボタンを押すと文字だけがコピーするプログラムとか・・・ EXCELの関数ではできるのでしょうか? いずれにしても大変不便なのでどなたか文字のコピーの方法を知っておられる方はぜひともよろしくお願いします

  • エクセル関数について、教えて下さい。

    エクセル関数について、教えて下さい。 a1:300 、 b1:* 、 c1:10 と入力してあります。 ここで、 d1へ =concatenate("=",a1,b1,c1) を設定した時に得られて表示される文字は、 「 =300*10 」 となります。 この時、この文字を数式として活用したいのですが、つまり解が " 3000 " と別のセルでも良いので、解答するようにしたいのですが、お解かりになる方教えてください。

  • エクセルのIF関数での範囲指定の方法

    エクセル2010のIF関数は割と良く使っているのですが、範囲指定して使用したいケースについて教えて頂きたく。 例えば「A1からD5までの範囲のセル全てが空白でない場合」 =IF(A1:D5<>””,0,”合格”)というような指定はできないでしょうか? このような範囲指定が出来ると、範囲の合計が100以上の場合、等々使いやすくなるのですが。 今は1つ1つのセルをIFで指定したり、合計をどこかのセルに出してそれを判定させているのですが、範囲が大きくなるとこのような方法ではさすがに・・・ 宜しくお願い致します。

専門家に質問してみよう