• ベストアンサー

EXCELの関数について教えてください

セルに入力されている文字列の頭に特定の文字列を同じセル内に追加したい作業があるので、以前の回答履歴の中に「CONCATENATE関数 VALUE関数を使うと良い」と言う内容のものがあったので、試してみたのですが、どうもうまくいきません。ちなみに作業内容はセル内に入力されている電話番号の頭に「8」とか「6」をつけていきたいのです。入力されてる書式設定は「文字列」で「○○-○○○○」というふうに全角で入力されています。書式設定を「文字列」にしてるのがいけないんでしょうか。

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

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.3

こんにちは! 表示だけ(当然印刷もできますが)でよろしいのなら 「8」を付けたいデータを選択 表示形式 ユーザー定義 "8"@ 「6」をつけたいセルも同様の作業 でも可能です! が融通が利くのはやはり、数値なのでお勧めは ・書式設定を標準にする ・編集 置換 検索文字列「-」 置換文字列「空欄」  で数値になる ・書式設定 表示形式 ユーザー定義 [DbNum3]00-0000 (変更後3桁-4桁で頭に0もありうるなら,桁の部分は000-0000 です) ・空いてるセルに 8000000 と入力 コピー ・8を付けたいセル範囲を選択 形式を選択して貼り付け  値にチェック 加算にチェック ・6の場合も6000000をコピーして同様の作業

cah7000
質問者

お礼

ご回答ありがとうございました。早速試してみたところ、うまく出来ました。 表示形式 ユーザー定義 "8"@ でやってみました。ただ、表示だけというのがひっかかるのですが、何かあとあと問題になりますか? (お礼で質問してしまってすいません・・)

その他の回答 (6)

  • comv
  • ベストアンサー率52% (322/612)
回答No.7

こんばんは! >ただ、表示だけというのがひっかかるのですが、 >何かあとあと問題になりますか? ご承知だとは思いますが、表示形式式だけなので 実際のデータには付加されていません! したがって  ・その番号で検索する数式があるとヒットしません   よく使うのは VLOOKUP() FIND() COUNTIF() など  ・その列をキーに並べ替え などでは、元の(数式バーに表示される)番号での対応 になります。 回避策としては ・一旦、CSVファイル形式で保存して、再度読み込み  ただし、他のセルに数式がある場合は、保存時に表示  されていた値に、書式設定は標準に変わってしまうの  で注意が必要です。 ・その範囲をコピー メモ帳に貼り付け  それをコピーして 元の範囲に貼り付け  のような方法もあります。

cah7000
質問者

お礼

ご回答、本当に感謝します。と言うのもそのデータはあとから、追加入力していくデータなので、並べ替えの作業が必須だったのです。今回の回答を頂かなければ、えらいことになるところでした。本当にありがとうございました。

  • yohsshi
  • ベストアンサー率55% (369/665)
回答No.6

関数を使うよりも簡単な方法がありますよ。 『編集』→『置換』 を使うことです。 例えば、06-○○○-○○○○で06の前に8を付けたい場合は、その範囲を選び 検索する文字列へ 06- 置換後の文字列へ 806- を入れて、置換(アクティブセル一つだけ)または全て置換(選択範囲全て)をおせば置き換えてもらえます。 詳しい状況がわかりませんが、これを応用すると関数を使うよりも便利ですよ

cah7000
質問者

お礼

ご回答ありがとうございます。 無事に解決いたしました。

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

セルの内容が文字列なら=”8” & A1 セルの内容が数値なら=A1+8*10^(LEN(A1)) でいかがでですか。 エクセルは自分自身のセルを参照することは許して いないから、別の列(行)等に一旦上記演算式で値をセット して、元のセルへ戻さざるをえないと思う。 余談ですが、その外に他のセルに値をセットすることも出来ないようです。 例えばB1のセルに対し演算式を=IF(A1=0,2, C1=2)などはセット出来ない。 ご質問は06-234-1111のように、06-の後だけ6234と6をつけたいというのでしょうね。 するとIF関数等で出きるだろうか?

cah7000
質問者

お礼

ご回答ありがとうございました。 無事に解決いたしました。

  • PCboy
  • ベストアンサー率30% (150/490)
回答No.4

連番の入力 【問題】  A1:A10に1~10の連番を入力する簡単な方法はなんでしょうか? 【回答】 1.セルA1に1を入力 2.セルA1のフィルハンドルをセルA10までドラッグ 3.Ctrlキーを押しながらドロップ 【解説】  最後にCtrlキーを押しながらドロップしないと、A1:A10に全て1が入力されます。  例えば、上記手順1.でセルA1に5を入力すると、5~14の連番が入力されます。  フィルハンドルとは、選択範囲の右下隅にある黒い四角形のことです。  マウスポインタをこのフィルハンドルに合わせると白抜きの太い+の形から細い+の形に変化します。

cah7000
質問者

お礼

二度にわたるご回答どうもありがとうございました。 無事に解決致しました。

  • PCboy
  • ベストアンサー率30% (150/490)
回答No.2

 例えば・・・ 『やりたい事』が A列に文字列が入っている場合はB列に順番に連番をふりたいです。  A1に「横浜」と文字が入っている場合はB1に 1 。A2に「東京」と入っていたらB2に 2。  ただ、A列は途中で空白があったり数値が入ってたりします。例えばA3が空白や数値の場合はB3は空白にして、A4が「大阪」だったらB4は 3 のようにしたいのです。      の場合なら ↓ 【回答】 セルB1に =IF(COUNTIF(A1,"*"),COUNTIF($A$1:A1,"*"),"") と入力して、下にコピー。

cah7000
質問者

お礼

ご回答ありがとうございました。 無事に解決しました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 自分自身の参照を指定することは出来ないので、別のセルに式を書く必要があります。 つまり、仮に電話番号がA列にあって、追加した結果もA列に表示したいのであれば、A列の内容を、いったんどこか別の列(例えばZ列)にコピーし、A列(ここではA1)に = CONCATENATE("8",Z1) と入力します。 ちなみに文字列であれば、関数をつかわずに = "8" & Z1 としてもOKです。 では。

cah7000
質問者

お礼

ご回答どうもありがとうございます。 無事に解決しました。

関連するQ&A

  • EXCELの関数について教えてください。

    EXCELの関数について教えてください。 A列のセルに「18:00 」or 「18:30」 or「19:00」 or「19:30」と入力するとB列のセルに「8:00」と表示され、「17:30」と入力すると「7:00」と表示される方法を教えてください。 セルの書式の表示形式は「文字列」ではなく「時刻」に設定したいです。 多分IF関数をつかうを使うのではないかと思うのですが、書式が「時刻」のためかうまくいきません。 よろしくお願いします。

  • Excelの「’」とセルの書式設定(文字列)の違い

    こんばんわ。 Excelの文字列表示について、教えてください。 数字を入力する際に、先頭に「'」を入力すると 文字列として入力することが出来ますが、 数字が入っているセルのセルの書式設定から 「文字列」に表示形式を変更することとの 違いはなんなんでしょうか? やり方は違うけれど、結果は同じということでしょうか? 「'」を入力すると、データが文字そのものに変わり、 表示形式を変更すると、見た目だけ(左揃えになるなど) 文字列のように見えるだけで、データは 数字のままということなんでしょうか?? また、文字列として入力された数字を Value関数で数値に変換してしまうのと セルの書式設定で「数値」に変更するというものも 同じように、違いが良く分かりません。。。 もう、頭の中が「??」だらけです。 違いを教えていただけたら・・・と思います。 どうぞよろしくお願いいたします<m(__)m>

  • excel97 関数プラス文字

    お世話になっております。 関数の数式の結果に、必ずある特定の文字(例えば「件」)が付くようにするにはどうしたらよいでしょうか。 「セルの書式設定」の「ユーザー定義」で「@"件"」としましたが、数や文字を入力すればうまくいきますが、関数だとだめなようです。

  • エクセル CONCATENATE関数

    エクセル2003のCONCATENATE関数で作ったテキストを関数化(数式化)できないでしょうか。 たとえば、C3のセルに下のCONCATENATE関数を入れ =CONCATENATE(D3,E3,F3) 文字列"=sum(A1:A10)" を表示させ、 その後CONCATENATE関数をのぞき、=sum(A1:A10)を計算させたいのです。 CONCATENATE関数で合成されたセルをコピーし、形式を選択して貼り付けから値だけを貼り付けても、なぜかうまくいきません。 =sum(A1:A10)とC3に表示され、計算は実行されません。

  • Excelで同じ値なのに重複の扱いになりません

    Excel 2016で条件付き書式セルの強調表示ルールを使って重複している値を検索しています。私は重複しているセルの背景が赤に変わるように設定していますが、どう見ても同じ値なのに赤にならないセルがあります。 現在の状態としましては、A列に入力してある文字列をJIS関数で変換したものがC列にあり、B列に入力してある文字列をJIS関数で変換したものがD列にある状態で、C列とD列に条件付き書式を適用しています。C1セルとD2セルに同じ「キリン公園」と表示されているとして、どちらも同じに見えるのにセルが赤くなっていません。 C列とD列をセルの書式設定で全て文字列と設定してみましたが、変わりませんでした。 ただ、D2の変換元であるB2セルに入力されている「キリン公園」の「キリン」の部分のみを選択して一度変換キーを押して確定すると、なぜかC1セルとD2セルが赤くなります。このとき、変換キーは押していますが見た目上は何も変わった様子はありません。(もともと全角入力していたものをまた全角で確定しただけ) このような現象の解消方法をご存知でしたら教えて下さい。 ひとつこのようなことが見つかり、他にも漏れがあるのではと不安です。 よろしくお願いします。

  • エクセル 書式設定・入力規則・関数等教えて下さい。

    先日は、わたくしの質問に回答を下さった皆さま、誠にありがとうございました。 日本人の優しさに感謝しております。 また、 エクセルで書式や関数等をご教授いただきたくお願いいたします。 全くの初心者でありますため、お恥ずかしい質問になりますが、どうかお助け下さい<(_ _)> 質問内容は、下記の2つです。 【質問内容です】 (1) B列にドロップダウンリストで「050」を強制的に選ばせるようにしました。   (選択肢は1つなので、わざわざと思われそうですが、05の後にハイフンを入れる   ような方もいらっしゃいますので・・・・)   セルの書式設定で050の後にハイフンが表示するようにしています。      ここから先がどうしたら良いのか分かりません。   C列に7桁の数字だけを入力してもらい、「5〇〇〇ー〇〇〇〇」としたいのです。   セルの書式設定のユーザ定義「5000"-"0000」とし、データの入力規則で「文字列(長さ   指定)」長さを「7」としてみたのですが、   初めに「0」(ゼロ)を入力するとエラーになってしまいます。   C列をセルの書式設定で「文字列」に設定してないからなのかな?と思いますが、強制的に   先頭に5を表示させたいのです。   関数は、さっぱり分かりません。   先日、回答をいただきながらも、私の知識が乏しいため、出来ないものもありましたため、   可能な限り簡素な方法をご教示いただきたく、お願いいたします。    (2) B列にIPアドレスを入力してもらうため、数字と.(ドット)以外入力出来ないように   入力規制をかけたいのです。   (IPアドレスの先頭に0「ゼロ」がある場合もあるのでしょうか?その辺のところも   加味していただけますと幸いです)   以上、2つの質問になりますが、何卒よろしくお願いいたします。   

  • Excelの文字列と文字列の連結

    A1のセルにはj50 C1のセルには01(ユーザ定義で00の書式) この二つの数値をCONCATENATE()関数を用いて文字列を 連結するとj501となってしまいます。 C1のセルを文字列の書式にするとうまくj5001と表示されますがそれ以外に方法はないでしょうか?

  • エクセルの使い方(関数?)

    エクセルで A列は半角 B列は文字 を入力するとき、わざわざ「半角/全角」キーを 押さなければいけませんが これを押さずに(言語バーは触らず) 入力できる方法はありませんか? 確か関数であった気がしますが。。 ちなみに、一括変換ではないです。 A列は半角・B列は全角と設定できませんか?

  • エクセル VBAで入力

     エクセル初心者です。 条件付き書式で一つのセルに特定の文字列を入力した際に、そのセルと任意の法則性のある複数のセルに(入力内容は無関係でセルの行・列に法則性があります)特定の塗りつぶしを行いたいのですが、どのようにすればよいのでしょうか。 条件付き書式をすべて設定する(手打ち)するのが最も確実で間違いの内方法ではありますが、新規に行・列を挿入した場合、その行・列には条件付き書式が設定されていませんので、意図した作用を起こさなくなってしまいます。 上記ではよくわからないと思いますので、具体的な例を入れさせていただきます。 例)) 任意のセル(A13)に特定の文字列(OK)と入力する。 特定文字列に反応して、そのセルの列に(A12からE12、F12からH12)赤色の塗りつぶしを入れる。 上記は1セルに対して行われますが、VBAを使用してA12からA5000までを検索対象として持たせて、それぞれのセルの列に対して塗りつぶしを入れられるようにしたいと思っています。

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

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

専門家に質問してみよう