• ベストアンサー

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/17070)
回答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