• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel の初心者です)

Excel初心者が数字を左側から順に並び変える方法とは?

このQ&Aのポイント
  • Excelの初心者が横一列に重複した数字の並びを左側から順に整理する方法を教えてください。
  • Excelの初心者が複数のセルに散らばった数字を左側から一列に並び変える方法を知りたいです。
  • Excelの初心者が同じ数字を無視して左側からセルの内容を整理する方法を教えてください。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 ワークシート関数では出来ない事は無いが非常に厳しいと思いますのでマクロでは駄目でしょうか。 データをSheet1、並び替えをSheet2としています。 (1)Sheet1タブ上で右クリック→コードの表示→以下のサンプルコードを貼り付け→F5キー押下 (2)サンプルコード Sub sample() Sheets("sheet2").Cells.ClearContents For j = 1 To Cells(Rows.Count, 1).End(xlUp).Row Set Db = CreateObject("Scripting.Dictionary") For i = 1 To Cells(j, Columns.Count).End(xlToLeft).Column Db(Cells(j, i).Value) = 1 Next wk = Db.keys For i = 0 To Db.Count - 1 Sheets("sheet2").Cells(j, i + 1).Value = wk(i) Next Next End Sub

moutk
質問者

お礼

別シートに作成できました。 早速、使用させて頂きます。 ありがとうございました。

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

どのような目的で重複のない数字を表示したいのかわかりませんが、単純に表示するだけで良いなら(この数字を計算などに使用しないなら)以下の数式を入力し、右方向にオートフィルコピーしてください(1行目のA列からZ列の重複のない数字を表示する場合)。 =INDEX(1:1,SMALL(INDEX((MATCH($A1:$Z1&"",$A1:$Z1&"",0)<>COLUMN($A1:$Z1))*100+COLUMN($A1:$Z1),),COLUMN(A1)))&"" なお、表示する数字を小さい順に並べたい場合は、別の数式を利用する必要があります。

moutk
質問者

お礼

丁寧な、ご回答ありがとうございました。

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

 今仮に、元データがSheet1のA1セルから始まっていて、並べ替えた結果をSheet2に表示するものとします。  又、Sheet3を作業用のシートとして使用するものとします。  まず、Sheet3のA1セルに次の数式を入力して下さい。 =IF(COUNTIF(INDEX(Sheet1!1:1,1):INDEX(Sheet1!1:1,COLUMN()),INDEX(Sheet1!1:1,COLUMN()))=1,COLUMN(),"")  次に、Sheet3のA1セルをコピーして、Sheet3のA1セルよりも右側にあるセルに貼り付けて下さい。  次に、Sheet3の1行目全体をコピーして、2行目以下に貼り付けて下さい。  次に、Sheet2のA1セルに次の数式を入力して下さい。 =IF(COLUMNS($A$1:A$6)>COUNT(Sheet3!1:1),"",INDEX(Sheet1!1:1,SMALL(Sheet3!1:1,COLUMNS($A$1:A$6))))  次に、Sheet2のA1セルをコピーして、Sheet3のA1セルよりも右側にあるセルに貼り付けて下さい。  次に、Sheet2の1行目全体をコピーして、2行目以下に貼り付けて下さい。  以上です。

moutk
質問者

お礼

丁寧な、ご回答ありがとうございました。

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

こんにちは! VBAになってしまいますが・・・ 一例です。 データはSheetの1行目からあるとします。 画面左下にあるSheet見出し(Shee1・Sheet2・・・)の部分の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です。) Sub test() 'この行から Dim i, j As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For j = Cells(i, Columns.Count).End(xlToLeft).Column To 2 Step -1 If WorksheetFunction.CountIf(Range(Cells(i, 1), Cells(i, j)), Cells(i, j)) > 1 Then Cells(i, j).Delete (xlToLeft) End If Next j Next i End Sub 'この行まで ※ 尚、一旦マクロを実行すると元に戻せませんので、別Sheetで試してみてください。m(__)m

moutk
質問者

お礼

初めてVBAをしようしました。 ご回答ありがとうございました。

関連するQ&A