プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。
セルを結合するとき、concatenate関数を使った場合と「&」を遣った場合の違いって何なんでしょうか?
いつも&で事足りるので、concatenateの存在が気になります。
どなたかご教授下さい。

A 回答 (4件)

&は文字列結合の「演算子」で、Concatenateはエクセル関数です。


旧MS系BasicやVBなどは結合に&(他のBasicなどで+を用いるのもあり、今でも使える)を使っていたことから流れこんだのかと思います。
Sub test01()
a = "東京"
b = "国立市"
MsgBox a + b
MsgBox a & b
End Sub
どちらも東京都国立市です。
MsgBox Application.WorksheetFunction.concatenate(a, b)
は使えないようです。
ロータス123は近縁のBasicなどが無かったためか、英米人にわかる言葉の意味的な方をとってConcatenate関数を作ったのでしょうか。
引数のある関数の形のものを作ったのでしょう。関数名(y、z)のようなもの。
Concatenate関数は引数が30個までのようです。
後は余り差がなく、表現が短い&のほうを愛用してます。
それで困ったことはありません。
VBなどでは、似たようなことで、Join関数という言葉が使われだしています。
    • good
    • 2

こんばんは。



私に知っている範囲では、CONCATENATE は必要ないと思います。
長い単語で、わざわざ使いづらくしているのだと思います。通常、使うために作られたのではなくて、Lotus1-2-3 との互換性のために作られた関数で、Excelでは、「&」でつなげば、それで用が足りるはずですね。

× =CONCATENATE(A1:C1)
このような使い方が出来ないのですから、あまり意味はありません。

もともと、ワークシートで有効に使わせるつもりだったら、「JOIN」や「CHAIN(実在しない)」になるはずだと思います。しかし、JOIN関数は、VBAにはありますが、ワークシート側にはありません。
    • good
    • 1
この回答へのお礼

お返事遅くなりまして、すみません。
確かに範囲してはできませんね。ありがとうございました。

お礼日時:2007/08/17 16:30

違いはありません。


文字列結合を配列したい場合に使用した事があります。
使用例 =INDEX(C:C,SUMPRODUCT(("AB"=CONCATENATE(A1:A5,B1:B5))*ROW(A1:A5)))
    • good
    • 2
この回答へのお礼

お返事おそくなりまして、すみません。
高度な方法を教えてくださりありがとうございました。

お礼日時:2007/08/17 16:29

配列とかセル範囲を、一撃必殺でくっつけるときにconcatinateは役立ちますよ。


sum()と+の違いみたいなもの?
    • good
    • 3
この回答へのお礼

あ、ナルホド。
ありがとうございました。

お礼日時:2007/07/19 17:34

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