• 締切済み

エクセルでの数値の書き換えについて

エクセル2013で500以上の数値はすべて500に書き換える。 同じく500~600までの数値は550に書き換える方法を教えてください。 関数とかでできない場合はVBAでよいので資料を添付しますので具体的にお願いします。 ただしVBAについては素人です。 2通りの方法を教えてください。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 関数では元のセルの値を書き換える事は出来ませんので、別のセルに出力する事になります。  例えば、質問者様の添付画像に写っている表が存在するシートがSheet1である場合で、書き換えた結果をSheet2に出力するものとした場合には、以下の様な方法となります。 ●500以上の数値はすべて500に書き換える場合  まず、Sheet2のA2セルに次の関数を入力して下さい。 =IF(OFFSET(Sheet1!$A$1,ROWS($A$1:$A2),COLUMNS($A$1:$A2))="","",OFFSET(Sheet1!$A$1,ROWS($A$1:$A2),COLUMNS($A$1:$A2))) 或いは =IF(Sheet1!A2="","",Sheet1!A2)  次に、Sheet2のA2セルをコピーして、Sheet2のB1~I1のセル範囲とSheet2のA3~A13のセル範囲にそれぞれ貼り付けて下さい。  次に、Sheet2のB2セルに次の関数を入力して下さい。 =IF(ISNUMBER(OFFSET(Sheet1!$A$1,ROWS($A$1:$A2),COLUMNS($A$1:$A2))),MIN(OFFSET(Sheet1!$A$1,ROWS($A$1:$A2),COLUMNS($A$1:$A2)),500),"") 或いは =IF(ISNUMBER(Sheet1!B2),MIN(Sheet1!B2,500),"")  次に、Sheet2のB2セルをコピーして、Sheet2のB2~I13のセル範囲に貼り付けて下さい。 ●500~600までの数値はすべて550に書き換える場合  前述の「500以上の数値はすべて500に書き換える場合」と同様なやり方で、Sheet2のB2セルに入力する関数のみを次の様な関数に差し替えて下さい。 =IF(ISNUMBER(OFFSET(Sheet1!$A$1,ROWS($A$1:$A2),COLUMNS($A$1:$A2))),IF(OFFSET(Sheet1!$A$1,ROWS($A$1:$A2),COLUMNS($A$1:$A2))<500,OFFSET(Sheet1!$A$1,ROWS($A$1:$A2),COLUMNS($A$1:$A2)),550),"") 或いは =IF(ISNUMBER(Sheet1!B2),IF(Sheet1!B2<500,Sheet1!B2,550),"")

全文を見る
すると、全ての回答が全文表示されます。
  • kichikuma
  • ベストアンサー率18% (202/1080)
回答No.4

数字を見て一つ一つ判断して数字を入力し直すと出来ます。 関数とかのとかってなんでしょうか? 関数とかもわからないし、VBAも初心者だからわからない。 つまり、現状では何もわからないけどExel使ってそう言う処理はしたいわけですか。 知っている関数が少ないとかそう言う話ではないですよね。 引数を取って結果を返すのが関数の根本なんで、参照するセルと結果を出力セルが同じだと循環参照となってエラーになります。 色々やり方書いてもわからないでしょうし、簡単そうなのを1パターンだけ書いておきます。 1.シートを複製(コピー元をAコピー先をB) 2.Bの数値を消します。 3.Bの数値を消したところに式を入れる。 資料の例ならB2にだけ式を入れてマウスでドラッグして他のセルを埋めれば良いです。 掛け算九九の表を作るのと大体一緒ですので初心者でも楽勝だと思います。 >500以上の数値はすべて500に書き換える。 同じく500~600までの数値は550に書き換える まず、条件の認識がおかしいです。 条件は正確に認識しなければ何も出来ません。 →は数学の命題的にならばって意味です。 条件1.500以上→500 条件2.500~600→550 条件2の書き方を条件1に合わせると 500以上600以下 範囲おかしくないですかね? 被ってますし。 結果も条件の順序によって、500以上のものが全て500になるか550になるかだけです。 やり方以前の問題だと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.3

追記。 >という式を書いて、それを、B2~I13までコピー&ペーストする。 ここで言う「それを」とは「B2セルを」です。「数式を」ではありませんので、間違えないように(数式のコピー&ペーストでは失敗します)

全文を見る
すると、全ての回答が全文表示されます。
  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.2

・500以上を500にする場合 何処か使ってないシート(例えばSheet2に)のB2セルに =IF(Sheet1!B2>=500,500,Sheet1!B2) という式を書いて、それを、B2~I13までコピー&ペーストする。 そして、B2~I13をCtrl+Cなどでコピー(点滅)状態にする。 次に、Sheet1に戻って、B2セルを選択して「編集」-「形式を選択して貼り付け」ー「値」で貼り付けする。 ・500以上600以下を550にする場合 書く式を =IF(And(Sheet1!B2>=500,Sheet1!B2<=600),550,Sheet1!B2) に変えて、上記と同じ処理をすれば良い。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

http://okwave.jp/qa/q9066383.html と考え方は同じ。500~600についてはAnd演算子を使う。 Sub bbbb()  Dim rg As Range   For Each rg In ActiveSheet.UsedRange    If IsNumeric(rg.Value) = True Then      If rg.Value >= 500 Then        rg.Value = 500     End If    End If   Next rg End Sub Sub bbbb()  Dim rg As Range   For Each rg In ActiveSheet.UsedRange    If IsNumeric(rg.Value) = True Then      If rg.Value >= 500 And rg.value <=600 Then        rg.Value = 550     End If    End If   Next rg End Sub

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで数値データ全体を適切に区分

    例えば、Excelのある列に、 11,23,45,90,150,234,1340,2034,2072,5600,19872,........ とう様に数値データがあり、これらを全体の数値範囲や多い数値(重み)を考慮して、適切に分類する関数、方法はあるでしょうか? IF関数で手動で分類する方法は分かりますが、全体バランスを見て、なおかつ適度にきりのいい数値で自動に分類したいです。 具体的には、関数を設定して、100未満、100以上500未満、500以上1000未満、1000以上3000未満、、、というように適当な分類区分を付けて、各数値を分類させたいです。

  • エクセル2000:B列に入っている関数をSUM関数だけ残し、そのほかは一括数値に変換したい

    よろしくお願いします。 エクセル2000で、 A列に勘定科目、B列に縦にSUM関数ほか、VLOOKUP関数などいろいろ関数を入れて数字が表示されています。 具体的には予算を作成する過程での資料です。 そこで、B列のSUM関数だけをのこして、それ以外の関数をすべて「数値」(関数で現在計算結果として表示されている数値)に変換したいのです。その方法をお教えくださいませ。 よろしくお願いいたします。

  • EXCELの数値の切り捨て

    EXCELを使用してある計算をしています。 計算した結果の数値を100の位は全て切捨てしたいのです。 例えば、計算した結果の数値が 「45624」ならば「45000」に。 「INT」関数を使用するらしい所までは分かるのですが、それをどう使用していいか分かりません。 大変我侭な要望ではございますが、なるべく「手順書」みたいに具体的に詳しく教えてもらえないでしょうか。 宜しくお願いいたします。

  • Excelで数値の丸め

    JIS Z8401 規則Aによる数値の丸めをエクセルの関数で行ないたいと考えています。 ただし有効数字を3桁にする必要があります。 つまり有効数字4桁目以降を丸める際、「二つの隣り合う整数倍がある場合は」「丸めた数値として偶数倍のほうを選ぶ」との規則になります。 具体的には下記の様にしたいのです。 54.25→54.2 79.13→79.1 108.5→108.0 110.95→111.0 119.55→120.0 207.2→207.0 過去ログにこれに近い物もありましたがうまくいきません。 よろしくお願いします。

  • エクセルで範囲のある数値に該当するデータを抽出

    エクセルにて  0以上 5未満 A  5以上10未満 B 10以上22未満 C・・・ というように、条件となる数値に範囲があるデータを抽出したいです。 IF関数の場合ネスト制限があるため全てのデータ抽出が行えません。 VLOOKUP関数で条件となる数値に範囲がある場合でもデータ抽出可能なんでしょうか? 適切な言葉が分からないので、上手く説明出来ているか分かりませんが、どなたかいい方法ありましたら、教えてください。

  • エクセルで文字を検索して数値を置き換える方法

    エクセル2013で2つの表の文字が合致した場合、特定の数値を検索して表示する方法を教えてください。 具体的には画像を添付しますのでよろしくお願いします。

  • エクセルの数値の足し引き

    初心者です。エクセルで例えばセルのA1とB2の数値をを足してC3の数値を引いてD4に差し引きの数値を入れたいのですがどうしたらいいんでしょうか?よろしくお願いします。具体的に関数みたいな例で回答頂ければありがたいです。

  • エクセルでの数値の丸め、切捨てについて

    エクセルで数値を入力する場合、1から4迄は0、 6から9までは5というように 切り捨て出来る関数、入力方法を 教えていただけないでしょうか? 例 129.8 切り捨てて129.5 129.4 切り捨てて129.0 といった具合にどちらの場合も切り捨てです。 よろしくお願いします。

  • エクセル ある数値以下を特定の数値に置き換えるには

    Excelで、ある数値以下の数値を特定の数値に置き換える方法をお教え下さい。 あるひとつの行で、-200以下の数値を全て-200に置き換えたいのですが、縦は450列以上あります。大量の列であっても簡単に置き換える方法をご教授頂けると有難いです。 例ですが、 -200 -200 -450 -200 300  300 180  180 -300 -200 このようにしたい置き換えたいです。 Windows 8でして、Excelのバージョンは2013です。 大変申し訳ございませんが、解り易いご回答をお待ちしております。 どうぞ宜しくお願い申し上げます。

  • エクセルでの数値の丸め方について

    エクセルで、数値を丸めるとき… たとえば 数値が3.2なら3.5を返す。 数値が3.6なら4.0を返す。 というように0.5ずつ切り上げるようなことは関数を使ってできますか? ご存知の方よろしくお願いします。

このQ&Aのポイント
  • 富士通FMVのパソコンで、画面が突然黒くなってしまいました。電源スイッチを入れても変化がありません。しかし、Wi-Fiの接続を示す箇所のみ点滅をしているようです。
  • 富士通FMVのパソコンで、突然画面が黒くなりました。電源を入れ直しても画面が復旧せず、問題の原因が分かりません。ただ、Wi-Fiの接続を示す箇所だけ点滅しています。
  • 私の富士通FMVのパソコンが突然画面が黒くなりました。電源スイッチを入れても画面が表示されず、問題が発生しています。ただ、Wi-Fiの接続を示す箇所だけ点滅しています。どうしたら復旧できるでしょうか?
回答を見る

専門家に質問してみよう