シート1で計算されたセルを含む任意の数カ所の列をシート2にコピーし、シート2でデータを並び変え(昇順)した場合100の位の昇順の後、10の位が昇順にならんでしまいます。ピポットテーブル機能を使用しても同様の結果になりました。通常の昇順通り10の位のあと100の位が並ぶようにしたいのですがどなたかご教授をお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

原因はわかりませんが、並び替えている列が数値形式ではなく文字列形式になっているのだと思います。


(文字列での並べ替えは文字の左側から並べ替えていくのでそのような状態になります。)
参考URLのページ(マイクロソフトのページ)に文字列から数字形式に変更する方法がいくつか書いてあるので試してみてください。

参考URL:http://www.microsoft.com/JAPAN/support/kb/articl …
    • good
    • 0
この回答へのお礼

セルの書式設定で数値を指示しても出来ませんでしたが、参考URLの方法3で行ったところ数値に変更できました。並び変えも完全な昇順にできました。大変ありがとうございました。

お礼日時:2001/07/27 21:13

表示形式が文字列になっていると数字の左端からソートをかけてしまいますので同じようなことがおこりますが・・・。

    • good
    • 0
この回答へのお礼

早速回答ありがとうございます。セルの書式設定で数値を指示しても数値になりませんでしたがNo2の方の回答で解決しました。

お礼日時:2001/07/27 21:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QエクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列

エクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列目(A列)の日付を一致させて1つのワークシートに纏める方法を探しています。

2つの時系列データがあるのですが、データA(為替データ)とデータB(株式データ)のデータ管理方法が下記のように異なっています。

データA(為替データ)・・・1週間のうち6日間(月曜から土曜まで)
データB(株式データ)・・・1週間のうち5日間(月曜から金曜まで)

おのおのワークシートのA列に日付が入っています。

データAは月曜から土曜までなので、1週間に6行要します。データBは月曜から金曜なので1週間に要するのは5行です。従って、単純にこの2つのデータを張り合わせるだけでは(データBをデータAのシートに張り合わせた時)、1週間に要する行数が違うので1行ずつずれてしまいます。

1週間に要する行数の違いだけでなく、マーケットが休みの日はデータそのものがないため日付が存在しません。(マーケットの休みもおのおの別の日でバラバラです。)

これらの理由により、ただ単に張り合わせるだけだとずれが広がるばかりです。

そこでデータAの日付とデータBの日付を認識して一致させる関数を教えて欲しいと思います。

データAの構成はA1=日付、B1=始値、C1=高値、D1=安値、E1=終値で、データBの構成も同じです。
データAのF1にデータAのA1と同じ日付のデータBの行を貼り付るように設定したいと思っています。

説明が分かり辛い場合は補足しますので、その際はご指摘下さい。

宜しくお願いします。

エクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列目(A列)の日付を一致させて1つのワークシートに纏める方法を探しています。

2つの時系列データがあるのですが、データA(為替データ)とデータB(株式データ)のデータ管理方法が下記のように異なっています。

データA(為替データ)・・・1週間のうち6日間(月曜から土曜まで)
データB(株式データ)・・・1週間のうち5日間(月曜から金曜まで)

おのおのワークシートのA列に日付が入っています。

データAは月曜から土曜までなので、1...続きを読む

Aベストアンサー

誤記がありましたね。ごめんなさい。

シートCのA2に
2010/1/1
を置いて下向けにえいやっとオートフィルドラッグ,365日の日付を並べておいて
B2:為替
=IF(COUNTIF(為替!$A:$A,$A2),VLOOKUP($A2,為替!$A:$E,COLUMN(B2)),"")
を右に下にコピー。
F2:株式
=IF(COUNTIF(株式!$A:$A,$A2),VLOOKUP($A2,株式!$A:$E,COLUMN(B2)),"")
を右に下にコピー。

これでマーケットの開いてなかった日付がエラーになることもありませんので,追加のご質問も解消でしょうか。

Qエクセルで1列に500行並んだデータを5列毎に改行

エクセル2000で、A1~A500までデータが縦並びに入力されています。

これを5列毎に改行して、横並びのデータに加工したいのですが、何か方法ありますか?

図解すると、、


A1
A2
A3
A4
A5
A6
A7


A500

のデータを

A1 A2 A3 A4 A5
A6 A7 A8 A9 A10
・・・・・・
A496 A497 A498 A499 A500



したいのです。

何かよい方法ありましたらお教え願います。

Aベストアンサー

'直接シートをいじるのでコピーをしてから試してみてください。
Sub Macro1()
COUNTER = 0
For INP = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 5
COUNTER = COUNTER + 1
Range("A" & INP & ":A" & INP + 4).Copy
Range("B" & COUNTER).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Next INP
Range("A1").EntireColumn.Delete
End Sub

QExcel2013 VBA A列とB列の文字をA列とB列とC列に移動させる方法

A列とB列に文字が入っているのですが、下記のようにA列とB列とC列に文字を移動させたいです。
(A列の数字は必ず奇数のA列に入っています。)
VBAのコードを教えて下さい。

例えば
A1 1  B1 cat
A2 空白 B2 猫
A3 空白 B3 dog
A4 空白 B4 犬
A5 2  B5 whale
A6 空白 B6 クジラ
A7 3  B7 rabbit
A8 空白 B8 ウサギ

とデータがある場合

A1 1  B1 cat  C1 猫
A2 空白 B2 dog  C2 犬
A3 2  B3 whale  C3 クジラ
A4 3  B4 rabbit C4 ウサギ

としたいです。

実際、データは、A5196まであります。

Aベストアンサー

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

少しは短縮できると思います。m(_ _)m

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeB...続きを読む

QExcelで2行以上の昇順並び替え

社員旅行の写真の申込みを振分けるのに、Excelで注文番号を整理しています。注文番号を昇順に並び替えたいと思いますが、下記Aさんの様に1行の並び替えは出来たのですが、Bさんの様に2行以上の並び替えで、
1行目左端→1行目右端→2行目左端…→最終行右端(枚数によっては右端までいかない)というようにするにはどの様にしたらよいのでしょうか?

Aさん  12 15 21 18 30

Bさん  14 27  7 31 16
      6  35 19 41  2

Aベストアンサー

かなり限定的な機能のヤツですが、マクロを作成してみました。
数値の入っているセルを矩形で選択して実行
Public Sub sort() 'ソートモドキ
Dim x As Range, i, wk
Dim NumList, max
Set NumList = CreateObject("Scripting.Dictionary")
max = 0 '0以下の数字はない
For Each x In Selection
If Not NumList.Exists(x.Value) Then '重複チェック
NumList.Add x.Value, x.Value
If max < x.Value Then max = x.Value '空白は0扱い
End If
Next
i = 1
Selection.ClearContents
For Each x In Selection
Do Until NumList.Exists(i)
i = i + 1
If i > max Then Exit Sub
Loop
x.Value = NumList.Item(i)
i = i + 1
Next
End Sub

かなり限定的な機能のヤツですが、マクロを作成してみました。
数値の入っているセルを矩形で選択して実行
Public Sub sort() 'ソートモドキ
Dim x As Range, i, wk
Dim NumList, max
Set NumList = CreateObject("Scripting.Dictionary")
max = 0 '0以下の数字はない
For Each x In Selection
If Not NumList.Exists(x.Value) Then '重複チェック
NumList.Add x.Value, x.Value
If max < x.Value Then max = x.Value '空白は0扱い
End If
Next
i = 1
Selection.ClearCont...続きを読む

Qエクセルの「昇順で並び替え」について

会社名別のリストを作成したのですが、会社名の前後に(株)や(有)を入れたことにより「昇順で並び替え」を実行すると、(株)や(有)を優先して並び替えが行われてしまうのです。
そこで、(株)や(有)はセル上にそのまま表示させておき、なおかつ純粋に会社名のみの並び替えを行いたいのですが、どなたかご存知でしたら教えて下さい。
宜しくお願いします。

Aベストアンサー

少し面倒ですが、(株)や(有)を表示形式で表示するように変更すれば、可能と思います。

以下はその操作例です。

1) 先頭に(株)が付いたすべてのセルを選択し、「書式」→「セル」→「表示形式」タブを開き、「分類」の「ユーザー定義」で、「@」選び、「"(株)"@」に編集して「OK」を押します。

2) 社名が「(株)(株)あいう」のように表示されますので、「編集」→「置換」で、「検索する文字列」に「(株)」と入力し、「すべて置換」を押しますと、社名が「(株)あいう」と表示されますが、数式バーで確認すると(株)が削除された「あいう」となります。

3) (有)についても同様に操作します。


このカテゴリの人気Q&Aランキング

おすすめ情報