- 締切済み
複数セルの連結でVALUE!エラー
セルとセルの連結で空のセルを指定するとVALUE!エラーが出てしまいます。 ですのでmicrosoftのQ&Aに書いてあった通りに TEXT関数でこんな感じにしてみました。 =A1 & TEXT(C1,IF(C1="","","0")) これで上手くいったのですが、本当は A1と、C1からZ1まで複数セルをまとめて連結させるのが目的です。 =A1 & TEXT(C1:Z1,IF(C1:Z1="","","0")) このようにしてみたら、またVALUE!エラーが出てしまいました。 どうやったら上手くA1とC1~Z1を連結できるでしょうか? まとめますと、 A1とC1~Z1のセルを文字列として連結させたい。 C1~Z1のセルには数字のみのセル、文字列のみのセル、空のセルなど混在してあります。 どうかお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- Nouble
- ベストアンサー率18% (330/1783)
=A1&B1:G1 と、でも した の、ですか? 此なら VALUE! に、確かに なりますね エラーが出た式を マウスカーソルで 全てなぞる事により 範囲指定に変え F9キーを 押してみてください すると 本当の計算結果 が、 解ります A1&B1&C1&D1&E1&F1&G1 此の演算結果には、ならず A1&B1;A1&C1;A1&D1;A1&E1;A1&F1;A1&G1 此の演算結果に、なって ませんか? では、 =A1&B1&C1&D1&E1&F1&G1 または =concatenate(A1,B1,C1,D1,E1,F1,G1) と、してみてください 今度は VALUE!には ならない の、では? 今回示された VALUE! ですが 1セルには1値しか 表示できない 其のところを 複数値 表示しよう と、させた為 お叱りを 受けている の、です つまりは A1&B1&C1&D1&E1&F1&G1≠A1&B1:G1 なのです こういう省略は 別の意味になる為 エクセルでは 許されて いません 因みに =A1&B1:G1 も その内の 1値だけを選ぶ そう指定をかければ VALUE!は でません 指定の一例 =INDEX(A1&B1:G1,1,1)
- bunjii
- ベストアンサー率43% (3589/8249)
回答No.3の追加です。 >どうやったら上手くA1とC1~Z1を連結できるでしょうか? 作業用に1行使えば簡単にC1からZ1までの文字列を連結できます。 貼付画像ではC2からAA2までのセルを作業用に使用しました。 C2=C1&D2 C2セルを右にZ2セルまでオートフィルでコピーします。 AA2セルは未入力のままにしてください。 B1=A1&C2 B1セルが目的のA1とC1からZ1までの文字列を連結した結果になります。 今回の検証ではC1からZ1までのセルに1文字または1桁の数値を入力してあります。 また、未入力のセルも混在させました。 基本的に文字列の連結には&演算子を使います。 数値は&演算子を使うことで自動的に文字列に変換されます。
- bunjii
- ベストアンサー率43% (3589/8249)
>セルとセルの連結で空のセルを指定するとVALUE!エラーが出てしまいます。 2つ以上のセル内のデータを文字列として連結したいと言うことでしょうか? 空のセルを指定しても#VALUE!エラーにはなりません。 A1="ABC" C1=未入力 B=A1&C1 → "ABC" >ですのでmicrosoftのQ&Aに書いてあった通りにTEXT関数でこんな感じにしてみました。 > =A1 & TEXT(C1,IF(C1="","","0")) TEXT関数は数値を文字列に変換するためのもので提示の数式は次の数式と等価です。 =A1&TEXT(C1,"0") =A1&C1 >これで上手くいったのですが、本当はA1と、C1からZ1まで複数セルをまとめて連結させるのが目的です。 残念ながら配列内の文字列を一挙に連結できる関数は組み込まれていないようです。 従って、提示の数式は目的に合っていません。 =A1 & TEXT(C1:Z1,IF(C1:Z1="","","0")) 尚、TEXT(C1:Z1,IF(C1:Z1="","","0"))の戻り値は配列になりますのでEnterキーのみで確定すると#VALUE!エラーになります。エラーを防ぐにはCtrl+Shift+Enterで確定してください。 エラーが出なくても1つのセルへ配列値を代入できませんので、提示の数式ではA1&C1が数式のセルへ代入されます。
- Chiquilin
- ベストアンサー率30% (94/306)
> =A1 & TEXT(C1,IF(C1="","","0")) なんつー無駄な…… =A1&TEXT(C1&"",0) これと同じ結果なはずです。 ただこの TEXTは何の為に入れているのでしょう。本当に必要なのですか? 私には無意味に見えるのですが…… > このようにしてみたら 計算結果が配列になるだけで連結される訳じゃないので無駄です。 > どうやったら上手く 一セルずつ数式で繋ぐ。 計算用の作業セルを使う。 VBAでユーザー定義関数を作る。 マクロで処理する。 などが考えられます。 どんなデータなのか もっと詳細に説明した方がいいんじゃないですかね。
- tamao-chi
- ベストアンサー率52% (457/875)
>C1:Z1 範囲を指定する意味の記号なので、これで連結する意味はありません。 単純に =A1&C1&D1&・・・・・・&Z1 です。 空のセルにスペースを入れたいなら作業用のセルが必要になります。 たとえば、2行目を作業用セルとすると、C2セルには =if(C1=""," ",C1) これをZ2までコピペし、 =A2&C2&・・・・&Z2 とします。 CONCATENATE関数でも連結できますが、やはり個々のセルを指定し、「:」は使えません。 ただ、VBAを使えば「:」を使って連結もできるようです。 http://www.relief.jp/itnote/archives/001342.php