• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:すみませんExcelなんですけどわかる方いたら教えてください。)

Excelの値を特定の列に入れる方法

このQ&Aのポイント
  • Excelで特定の条件を満たす値を別の列に移す方法を教えてください。
  • A列にある0以外の値をB列に移す方法を教えてください。
  • Excelのデータを複数の列に分ける方法を教えてください。

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

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

 A列に表示されている順番ではなく、数値の小さい順番に表示される方法ですが、それでも宜しいでしょうか? (例えば、A列の上から0,4,0,2,0,0,8,0,1と表示されている場合に、B列には1,2,4,8と表示されます)  まず、B1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNTIF(A:A,">0"),"",SMALL(A:A,ROWS($1:1)+COUNTIF(A:A,"0")))  次にB1セルをコピーして、B2以下のセルに貼り付けて下さい。  以上で完成です。

その他の回答 (2)

  • muunoy
  • ベストアンサー率38% (70/183)
回答No.3

VBAならば以下のようなコードでとりあえずできます。 ほぼそのまま、使えるようにしたのですが、投稿時にインデントが削除されてしまうため、見づらくなってしまいました。 コピペして確認してみてください。 Sub TEST() '変数定義 Dim r As Long 'A列の処理対象行 Dim end_r As Long 'A列の最終行 Dim input_r As Long 'B列の入力行 With ThisWorkbook.Sheets("TEST") '処理対象となるファイルの指定(ここでは、マクロを埋め込んだファイルのシート名「テスト」) r = 1 '処理開始行で初期化 A列用 input_r = 1 '処理開始行で初期化 B列用 end_r = .Cells(1, "A").SpecialCells(xlLastCell).Row 'A列の処理対象最終行数を取得 Do While r <= end_r '繰り返し処理の判断:処理対象最終行まで繰り返す If .Cells(r, "A").Value <> 0 Then 'A列の処理対象セルの入力値が0でないかの判断→とりあえず数値0以外全てを対象としています .Cells(input_r, "B").Value = .Cells(r, "A").Value '処理対象セルの値が0以外なら、上から順にB列に値を入力 input_r = input_r + 1 'B列の処理対象行を増やす(次の処理用) End If ' r = r + 1 'A列の処理対象行を増やす Loop ' End With End Sub >0でない値 とのことでしたが、文字が入力されている可能性についてはわかりませんでしたので、下に参考となる質問・回答のURLを書きます。 http://okwave.jp/qa/q2872556.html 入力される可能性のある値の種類、 ワークシート関数での処理を希望しているかどうか、 使用目的 等々 詳細は、別途ご質問をたてていただけれますと、回答しやすいかと思われます。

  • bari_saku
  • ベストアンサー率17% (1827/10268)
回答No.1

オートフィルターをかけるか、ピボットテーブルを使ってゼロを対象外にするのが手っ取り早いかと。

konpota333
質問者

補足

すみません、数値に乱数を用いてるのですけど大丈夫ですか?

関連するQ&A