Excel関数を使ったデータの一括変更方法

このQ&Aのポイント
  • Excel2010と2013を使用している場合、A列に並んでいるデータを一括で変更したい場合、オートフィルが使用できない場合もあります。その場合、B列からRIGHT関数を使用して数字を抜き出し、C列に1ずつ足して、D列にABを付け加える数式で計算し、最終的にA列にコピーする方法を使用することがあります。しかし、これらの手順を一度に実行する方法はありませんか?
  • Excel関数を使用してデータの一括変更を行う場合、オートフィルが使用できない場合もあります。その場合、B列のデータからRIGHT関数を使用して数字を抜き出し、C列に1ずつ足して、D列にABを付け加える数式で計算し、最終的にA列にコピーする方法があります。しかし、これらの手順を繰り返す必要があり、手間がかかります。より効率的な方法はないでしょうか?
  • Excel2010や2013を使用している場合、A列に並んでいるデータを一括で変更する方法を探しています。データの一部はAB001、AB002、AB003のような形式であり、オートフィルを使用することができません。現在、B列からRIGHT関数を使用して数字を抜き出し、C列に1ずつ足して、D列にABを付け加える数式で計算し、最終的にA列にコピーしています。しかし、これらの手順を繰り返す必要があり、手間がかかります。一括で変更する方法はないでしょうか?
回答を見る
  • ベストアンサー

excelの関数について

EXCEL2010と2013を使っています。 例えばA列にAB001、AB002、AB003・・・と並んでいるものを、途中でAB001をAB002、AB002をAB003・・・という風に変更したいのですが、それぞれが一つずつとは限らなく、AB001が2つとか3つとかあったりします。なので、オートフィルが使えません。 今やっている方法が、まずB列でRIGHT関数で右側4つの数字を抜き出し、そのあとC列で1をそれぞれに=A1+1という式ですべて1ずつ足して、そのあとD列で ="AB"&002のようにABを付け加える数式で計算したあとA列にコピーするというやり方しかわかりません。それらをいっぺんにする方法は何かないのでしょうか?

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

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

>それらをいっぺんにする方法は何かないのでしょうか? B列に数字のみ抜き出す作業を関数で行っているのであればその数式に数値部の加算と先頭の文字列の連結を加えれば作業用の列は1列で済ませることができます。 B1=LEFT(A1,2)&TEXT(RIGHT(A1,3)+1,"000") 但し、A列の文字列は先頭2文字が固定で数値部は3桁固定の場合になります。 B1セルを下へ必要数コピーして、コピー後の選択状態から一括でコピーし、A列へ値のみを貼り付ければ良いでしょう。 直接A列の文字列を一括して書き換えるにはVBAで必要のつど実行する方がベターと思われます。 VBAについては不得手なので他の回答を待ってください。

tamegorou
質問者

お礼

ありがとうございます。作業が楽になりました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! >それらをいっぺんにする方法は何かないのでしょうか? VBAでの一例です。 最後が必ず半角の数値になっているとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻り、必ず「範囲指定」をしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample() 'この行から Dim c As Range, k As Long, str As String, myNum As Long For Each c In Selection If c <> "" Then For k = 1 To Len(c) If Mid(c, k, 1) Like "[0-9]" Then Exit For Next k If k > 0 Then str = Left(c, k - 1) myNum = Replace(c, str, "") c = str & Format(myNum + 1, "000") End If End If Next c End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

tamegorou
質問者

お礼

ありがとうございます。マクロはまだやったことがないので、挑戦してみたいと思います。

noname#204879
noname#204879
回答No.1

添付図において、 1.次の“ユーザー定義”書式を設定     "AB"000 2.A列に、数値の(例えば) 1、2、3、4、1、1 を入力 3.セル A1 を[コピー]して、此れをセル C1 に[貼り付け] 4.セル C1 を[コピー] 5.範囲 A1:A6 を選択 6.[形式を選択して貼り付け]メニューの“加算”に目玉入れ 7.Enterキーを「エイヤッ!」と叩き付け!

tamegorou
質問者

お礼

ありがとうございます。試してみたのですがうまくいきませんでした。もうちょっとやってみます。

関連するQ&A

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • エクセルの関数について

    A列に1,2,3・・・と回数があり、B列に一桁の数字(0~9)がランダムにあり、C列(C1)には『=IF(B1=1,"○","")』とあり、C2以降オートフィルでコピーされています。 B列の数値が『1』の時にだけC列に『○』が入りますが、D列に『C列の○と○の間隔』を数字で表示したいのですが、『=IF(B10=1,COUNTBLANK(C2:C9)+1,"")』としても、オートフィルで全てのD列にコピーしても参照セル範囲がランダムなので上手く行きません。 ○印が出現したら直前回の○印からの出現間隔を関数で自動表示したいのですが、関数が分かりません。あるいは関数の組合せ方法が思い浮かびません。 分かりやすく言うと、例えばナンバーズなどのある桁の0から9までの数字のうち、任意の数字が出現するたびにその横の列に○印を付け、さらにその横の列に出現した間隔を自動で表示できる関数が知りたいのです。 言葉で上手く表現できませんが、分かる方教えて下さい。お願いします。

  • エクセルで多数行へ数式を貼り付ける方法

    エクセルで1つの数式をコピーし、一度に多数行へ貼り付ける方法を教えてください。 たとえば、A列1行からA列10000行まで入った数字をB列では計算式による変換後の数字にしたい場合、B1に計算式を書き、それをコピーしてB2からB10000の範囲に貼り付ければいいわけですが、行が多すぎるためいっぺんに処理をする方法があるでしょうか。よろしくお願いします。

  • ExcelのCOUNTIFで条件の値に1を足す方法

    ExcelのCOUNTIFを使って集計をしています。 「Log」とういうシートのデータを固定で範囲指定(オートフィルで範囲が変わってしまうため)し、その中に「Sheet1」のA列のデータ(文字列:氏名)といくつ合致しているかを集計しようとしています。 =COUNTIF(Log!$B$7:$B$510,"*A1*") 上記数式をG1に入力しオートフィルでコピーしてもコピー先の数式は何も変わりませんでした。 =COUNTIF(Log!$B$7:$B$510,"*A2*")と手入力し再度コピーすると ・・・"*A1*"、・・・"*A2*"、・・・"*A1*"、・・・"*A2*"となるだけでした。 どうすればオートフィルでA1,A2,A3…となってくれるでしょうか? もし他の(簡単な)方法があれば教えていただければ幸いです。 使用ソフト:Excel2002 よろしくお願いいたします。

  • Excel 数式を加算させながらセットする方法は?

    Excel2007です。 [A1]の数式 =A100 [B1]の数式 =A101 [C1]の数式 =A102 [A2]の数式 =A110 [B2]の数式 =A111 [C2]の数式 =A112 [A3]の数式 =A120 [B3]の数式 =A121 [C3]の数式 =A122 という表を作りたいのですが、 最初に1列目の数式を作ってから、2列目に10ずつ加算、3列目に20ずつ加算… というよう数式を変えてコピーしていく方法はないでしょうか? 全てのセルの数式を手作業で入力していくのは時間がかかりますし、オートフィルみたいに簡単に作るのは難しいのでしょうか? よろしくお願いします。

  • オートフィル機能が使えない

    Excel2003を使っていますが、 今日からオートフィル機能がうまく使えなくなりました。 オートフィル機能で数式をコピーしても 数値だけがコピーされます。 上書き保存(既存のファイルですので)すると 計算式が更新されて答えが出てきますが、 なぜこのようになってしまうのでしょうか? 直す方法があれば教えてください。 よろしくお願いいたします。

  • Excelで数式のコピーが出来ない

    簡単な作業ですがどうした訳か数式のコピーが出来ません。長年、同じ方法でやっています。確かにコピー元には数式が入っているのですが貼り付けすると数式ではない値がそのまま出ます。EXCEL2003でやっています。作業はA1…E1のAVERAGEをF1に求めるものですが1行目は計算されますが2行目にF1をコピー/貼り付け又はドラッグしても同じですが同じ数字が出ます。またA列1~100までの値が入っているものだけのCOUNT数にしてもB列~G列も同症状です。こんな事は初めてなのでどなたか教えて下さい。

  • エクセルの関数を教えてください。

    A列に数字があって、B列に数字がないものの個数を数える数式を教えてください。ちなみにフィルターを掛けると、表示されたものだけの上記個数がわかる関数を教えて欲しいです。よろしくお願いします。

  • Excelオートフィルとコピーについて

    Excel2007を使っています。 まず、オートフィルについてなのですが、表の途中で数字を入力し、オートフィルでコピーをしようとすると連続データになってしまいます。 試しに他の場所で同じことをしたら連続データではなく同じ数字が出ました。 これはExcelの方の認識の違いかなんかですか?? そしてこれを解消するのにCtrlを押しながらオートフィルを使います。 しかし、この時数字だけをコピーしたいのでオートフィルのオプションを使って書式なしコピーをすると数字は連続データになってしまいます。 オートフィルを使わずにコピー、貼り付けで貼り付け先の書式に合わせるという方法しかないのでしょうか? よろしくお願いします。

  • エクセル 数式のオートフィルについて

    A B 1 2 =A1+A2 3 =A1+A2+A3 4 =A1+A2+A3+A4 ・ ・ ・ 上記の様に、B列に入力された数式をオートフィルを使いコピーしたいのですが、 数式の頭のA1が固定されずにコピーされてしまいます。 良い方法を教えて下さい。 お願いします。 説明下手ですいません・・・

専門家に質問してみよう