エクセルの並べ替えで、数値データを使って3000件程度のデータを並べ替えたいと思っていますが、どうしても途中でグループが分かれてしまい、すべてのデータを対象にできません。
途中に空白行があるわけでもなく、念のため書式設定をすべて標準に設定しましたが、それでもなりません。
グループ別れしたデータのところで、データを選択し、エンターキーを押しなおしたところ、きちんと並べ替えられるグループに収まったのですが、残り2500件もひとつずつしていられません。何かよい方法はないでしょうか。ご存知の方教えてください。

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

A 回答 (1件)

こんにちは。



何も入っていないセルを1つ選択した後、右クリックしコピー

数値データを全て選択後、右クリック、形式を選択して貼り付け

形式を選択して貼り付け画面の下部の、「加算」を選択して、OKボタン


これは何をしているかというと、何もないセルの値、即ちゼロを加算し、全てを数値に変換しているわけです。

以上です。
    • good
    • 0
この回答へのお礼

ありがとうございます。無事にできました。

お礼日時:2005/04/22 18:02

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Qvbaでエンターキーでエンターキーで移動する

vbaで教えていただきたいのでが、

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address(False, False)
'NO1
Case "F12" 'このセルが変更されたら---(1)
Range("H12").Select 'このセルに移動する---(2)
  Case Else
End Select
End Sub
エンターを押すと指定のセルに移動するようなプログラムを作りたいのですが
 変更しないと指定したセルに行きません。
 初心者すぎてどこを変更していいかわかりません。これではできないのでしょうか?
 ご教授お願いします。

Aベストアンサー

訂正しました。

#2で書いたものは、すべて消してください。
ややこしいと思われるかもしれませんが、キーの設定を他に波及させないためです。
また、設定したシートは、若干、カーソルの動きが鈍く感じます。

'//シートモジュール
Private Sub Worksheet_Activate()
 SettingKeys True
End Sub

Private Sub Worksheet_Deactivate()
'設定解除
SettingKeys False
End Sub

Sub OnEnterKeyMoving()
'★設定はここでします。
 If Not ActiveSheet.Parent Is Me.Parent Then
  SettingKeys False
  Else
  Select Case ActiveCell.Address(0, 0)
   Case "F12": Range("H12").Select
   Case Else: ActiveCell.Offset(1).Activate
  End Select
 End If
End Sub
Sub SettingKeys(flg As Boolean)
If flg Then
 Application.OnKey "{ENTER}", Me.Name & ".OnEnterKeyMoving"
 Application.OnKey "~", "OnEnterKeyMoving"
'MsgBox "キーを設定しました"
Else
 Application.OnKey "{ENTER}"
 Application.OnKey "~"
 'MsgBox "キーを解除しました"
End If
End Sub
'-------------
'設定したシート名を入れる
'ThisWorkbook モジュール
Private Sub Workbook_Deactivate()
Worksheets("Sheet1").SettingKeys False
End Sub

Private Sub Workbook_Activate()
Worksheets("Sheet1").SettingKeys True
End Sub

訂正しました。

#2で書いたものは、すべて消してください。
ややこしいと思われるかもしれませんが、キーの設定を他に波及させないためです。
また、設定したシートは、若干、カーソルの動きが鈍く感じます。

'//シートモジュール
Private Sub Worksheet_Activate()
 SettingKeys True
End Sub

Private Sub Worksheet_Deactivate()
'設定解除
SettingKeys False
End Sub

Sub OnEnterKeyMoving()
'★設定はここでします。
 If Not ActiveSheet.Parent Is Me.Parent Then
  SettingKeys False
  Else
  S...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qエクセル 重複する値を横に並べ カレンダー化

教えてください。

エクセルで重複する検索値を横にならべる方法を探していて次のサイトを見つけました。

http://excel-forest.net/2016/07/19/not-vlookup/

基本的にやりたいことはこれなんですけど、この表を添付画像の用にカレンダーのように整えることは可能でしょうか?
○でなくても、日付がそのまま記載でもかまいません。

よろしくお願いします。

Aベストアンサー

私は「特に40代・男性」ではありませんが・・・
Sheet2!B2: =IF(SUMPRODUCT((Sheet1!$A$2:$A$14=$A2)*(Sheet1!$B$2:$B$14=B$1)),"○","")

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Qエクセル データの並び替えで月を基準に並び替える方法

お世話になります。
次のデータがシートにあります。

担当者  顧客名  担当期間     月  年
田中   加藤   2016/04/30   04  H28
田中   斉藤   2017/01/31   01  H29
高橋   金田   2017/07/31   07  H29
高橋   皆川   2016/09/30   09  H28
田中   村山   2017/04/30   04  H29

月と年は、担当期間からTEXT関数にてmm、geにて反映させています。


やりたいこと
担当者を第1条件で昇順の並び替え
さらに、月を第2条件、年を第3条件として、昇順での並び替えとしたい

この場合、担当田中であれば
田中   加藤   2016/04/30   04  H28
田中   村山   2017/04/30   04  H29
田中   斉藤   2017/01/31   01  H29

と並び替えたいのです。

しかし、第2条件を月にすることで01が優先となってしまい、
田中   斉藤   2017/01/31   01  H29
田中   加藤   2016/04/30   04  H28
田中   村山   2017/04/30   04  H29

となります。


通常の日付順である4月からの並び替えかつ、年をその次の条件として反映させるには、
どのようにしたら良いでしょうか?良い方法がありましたら教えてください。

お世話になります。
次のデータがシートにあります。

担当者  顧客名  担当期間     月  年
田中   加藤   2016/04/30   04  H28
田中   斉藤   2017/01/31   01  H29
高橋   金田   2017/07/31   07  H29
高橋   皆川   2016/09/30   09  H28
田中   村山   2017/04/30   04  H29

月と年は、担当期間からTEXT関数にてmm、geにて反映させています。


やりたいこと
担当者を第1条件で昇順の並び替え
さらに、月を第2条件、年...続きを読む

Aベストアンサー

No1です。補足、拝見しました。

「通常の日付順である4月からの並び替え」ということですが、通常の日付順であれば、最初にmakun100さんがやった通り、1月~12月の順番で正しいですよね?
4月~3月であれば、年度に相当する月順ということだと思うのですが、やりたいことはこちらでしょうか?
もしそうであれば、並べ替えキー用の作業列を用意して、その列を使って並べ替える必要があると思います。
具体的には、次のような感じでしょうか。

=IF(MONTH(C2)>3,MONTH(C2),MONTH(C2)+12)

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QVBA エクセル2010 横長データを縦にまとめる(複数グループを一つのグループにする)

初心者で勉強中なので、まだまだVBAを使い慣れていません。
急ぎの業務で実力以上の内容に手をつけざるを得ず、困っております。
どなたかお知恵拝借できますでしょうか。
よろしくお願いいたします。

データについては画像でお分かりいただけますでしょうか。
*写真では項目は「ID02」まで、下記の例とは内容は異なります

現在の形
sheet1
(項目名)
№ 項目1~項目10 ID01 大分類 中分類 小分類~ ID20 大分類 中分類 小分類

希望の形
sheet1からsheet2に転記
№ 項目1~項目10 ID01 大分類 中分類 小分類
№ 項目1~項目10 ID02 大分類 中分類 小分類
№ 項目1~項目10 ID05 大分類 中分類 小分類
№ 項目1~項目10 ID20 大分類 中分類 小分類

①A列「№」~k列「項目10」に対して、入力のあるL列以降の複数グループ「ID01」~「ID20」(それぞれ4列が一つのグループ)を一つのグループとしてまとめて転記したいです。

やりたいことは下記です。
①見出し行(指定の行)以下から処理を開始する
②「ID01」に入力がない場合でも、「№」~「項目10」まで入力があれば転記
③「ID01」~「ID20」で入力がない「ID**」は転記しないが、入力のある・なしは不規則
入力のないものだけ転記をスキップする  

VBAは書きかけですが、下記の回答を参考にしてみました。
R2の設定あたりから躓いています。

なお、項目数やIDの詳細数が変わる可能性があるので、その際気を付ける変更場所についても合わせて教えていただけますでしょうか。


【参考回答】「エクセル2003 横のデータを縦に並べたいです。」
http://oshiete.goo.ne.jp/qa/5605894.html?from=navi_recommend

-------------------------
Sub 転記()

Dim I As Long, X As Long
Dim R1 As String, R2 As String
I = 1: X = 1
Application.ScreenUpdating = False
Do While Range("Sheet1!A" & I).Value <> "" 'Sheet1の行移動ループ
R1 = "": R2 = "L"
Do While Range("Sheet1!" & R1 & R2 & I).Value <> "" 'Sheet1の列移動ループ
Range("Sheet2!A" & X).Value = Range("Sheet1!A" & I).Value
Range("Sheet2!B" & X).Value = Range("Sheet1!B" & I).Value
Range("Sheet2!C" & X).Value = Range("Sheet1!C" & I).Value
Range("Sheet2!D" & X).Value = Range("Sheet1!D" & I).Value
Range("Sheet2!E" & X).Value = Range("Sheet1!E" & I).Value
Range("Sheet2!F" & X).Value = Range("Sheet1!F" & I).Value
Range("Sheet2!G" & X).Value = Range("Sheet1!G" & I).Value
Range("Sheet2!H" & X).Value = Range("Sheet1!H" & I).Value
Range("Sheet2!I" & X).Value = Range("Sheet1!I" & I).Value
Range("Sheet2!J" & X).Value = Range("Sheet1!J" & I).Value
Range("Sheet2!K" & X).Value = Range("Sheet1!K" & I).Value



Range("Sheet2!L" & X).Value = Range("Sheet1!" & R1 & R2 & I).Value






If R2 = "Z" Then '列移動コード
If R1 <> "" Then
R1 = Chr(Asc(R1) + 1)
Else
R1 = "A"
End If
Else
R2 = Chr(Asc(R2) + 1)
End If
X = X + 1 'Sheet2の次の行へ
Loop
I = I + 1 'Sheet1の次の行へ
Loop
Application.ScreenUpdating = True
MsgBox ("完了")
End Sub

どうぞよろしくお願いいたします。

初心者で勉強中なので、まだまだVBAを使い慣れていません。
急ぎの業務で実力以上の内容に手をつけざるを得ず、困っております。
どなたかお知恵拝借できますでしょうか。
よろしくお願いいたします。

データについては画像でお分かりいただけますでしょうか。
*写真では項目は「ID02」まで、下記の例とは内容は異なります

現在の形
sheet1
(項目名)
№ 項目1~項目10 ID01 大分類 中分類 小分類~ ID20 大分類 中分類 小分類

希望の形
sheet1からsheet2に転記
№ 項目1~項目10 ...続きを読む

Aベストアンサー

補足を拝見しました。そうですね、IDが一個もなくても、頭の部分の転記はせねばならないんですね。
以下でどうでしょう。IDの有無を判別するIf文を追記して若干アレンジしました。
私の手元のダミーデータでは正常稼働しました。
これで行けてるかなあ?なにかありましたらまたどうぞ。

'---------------------------------------------------------------------
Option Explicit

Sub Tenki3()

'変数宣言とセット
Dim Ws1 As Worksheet, Ws2 As Worksheet
Dim r As Long, c As Long
Dim Heada As Range, Rng As Range, Cnt As Integer
Dim TgtRow As Long

Set Ws1 = Worksheets(1)
Set Ws2 = Worksheets(2)


'前回結果(Sheet2)をクリア
Ws2.Select
Set Rng = Ws2.Cells(1, 1).CurrentRegion
If Rng.Rows.Count > 1 Then 'まだクリアされてないなら
 Set Rng = Rng.Offset(1, 0).Resize(Rng.Rows.Count - 1, Rng.Columns.Count) 'Sheet2の見出し行を除く範囲をRngにセット
 Rng.ClearContents
End If

Application.ScreenUpdating = False

'Sheet1を縦にループ
r = 2
With Ws1
 Do While .Cells(r, 1).Value <> ""
  Set Heada = .Range(.Cells(r, 1), .Cells(r, 11)) 'ヘッダ(A~K列)をHeadaに格納
  Cnt = Application.WorksheetFunction.CountA(.Range(.Cells(r, 12), .Cells(r, 91))) '当該行L~CM列、空白でないセルの個数

  If Cnt = 0 Then 'ひとつもIDが入ってないなら
    TgtRow = Ws2.Cells(Rows.Count, 1).End(xlUp).Row + 1
    Heada.Copy Ws2.Cells(TgtRow, 1) 'ヘッダをSheet2の最終行にコピペ
  ElseIf Cnt > 0 Then '一つ以上IDがあるなら
    For c = 12 To 88 Step 4 'L~CJ列を4つおきにループ
      If .Cells(r, c).Value <> "" Then 'IDがあるなら
        TgtRow = Ws2.Cells(Rows.Count, 1).End(xlUp).Row + 1
        Heada.Copy Ws2.Cells(TgtRow, 1) 'ヘッダをSheet2最終行A列にコピペし、
        Set Rng = .Range(.Cells(r, c), .Cells(r, c + 3))
        Rng.Copy Ws2.Cells(TgtRow, 12) '大中小分類をSheet2最終行L列にコピペ
      End If
    Next c
  End If
  r = r + 1
 Loop
End With

Application.ScreenUpdating = True

MsgBox "Completed."
End Sub

’-----------------------------------------------------------------

それぞれのステートメントにコメントを振りましたので、お分かり頂けると思いますが、メンテの際について。
>項目数やIDの詳細数が変わる可能性があるので、その際気を付ける変更場所

・項目数
 上のコード内では「ヘッダ」と呼んでいる箇所。A~K列の部分をいじってください。
 変数Heada のところとか。
 それに伴い、Sheet2のL列からデータを貼っていますので、そこに該当する部分も。

・IDの詳細数
 L~CJ列のループを入れているところとか、変数Rngに格納する部分をいじる必要が出てきます。

上記のようにコードの修正をするときや、エラーが出た時、想定外の挙動を見せた時など、一段階ずつコードを
実行させながら動きを確認していくことも有効です。
ステップ実行と呼ばれるものですが、コード内にカーソルを置き、F8キーを押していくと、一段階ずつ進んでいきます。
あわせて、VBE画面の「表示(V)」>「ローカルウィンドウ(S)」も表示させて、併用すると、各変数が
どのような動きをしているかも見られます。

-------------------------------------------------------------------
行列両方向のループについて
このように縦横両方向へのループはかなり高い頻度で使用されます。
今回の例でいえば、Sheet1の元データを2行目から下方向へ見ていく。
んでもって、各行において、ID1~ID20まで右方向へ見ていく。

ループ回数が決まっているとすれば、縦横ループは以下の形がまずは基本。
例)
Dim r As Integer,c As Integer
For r=1 to 10
 For c=1 to 10
  Cells(r,c).Value=r*c
 Next c
Next r

今回は縦方向のデータ数が不定なので、縦のループは、Do Loopを使いました。
このように、縦方向のデータ数不定、でも、右方向の項目数は固定、というのは最も多いパターンです。
したがって、Do Loop と、For Next との使い分けも意識してみてください。
また、それぞれのループを内側に置くか、外側に置くかで結果が変わることもありますので
いろいろ研究してみましょう。

※なお、縦(下)方向のカウンタは行(Row)という意味で r 、
列(右)方向のカウンタは列(Column)という意味で c と置くのが、わたしは好きですが、
決まりではありませんので誤解なさらぬよう。

補足を拝見しました。そうですね、IDが一個もなくても、頭の部分の転記はせねばならないんですね。
以下でどうでしょう。IDの有無を判別するIf文を追記して若干アレンジしました。
私の手元のダミーデータでは正常稼働しました。
これで行けてるかなあ?なにかありましたらまたどうぞ。

'---------------------------------------------------------------------
Option Explicit

Sub Tenki3()

'変数宣言とセット
Dim Ws1 As Worksheet, Ws2 As Worksheet
Dim r As Long, c As Long
Dim Heada As Range, Rng As...続きを読む

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Qエクセル グループを並び替え

並び替えについて質問します。

A列    B列     C列
AAA社 東京支店 03-XXXX-1234
AAA社 千葉支店 04X-XXX-1289
BBB社 本社    03-XXXX-5678
CCC社 渋谷店  03-XXXX-9123
CCC社 新宿店  03-XXXX-4567
CCC社 千葉店  04X-XXX-8912

のような表があります。

これを社名のグルーピングはそのままにしてランダムに並び替えたいのですがいい方法はありますか?
たとえば

CCC社 渋谷店  03-XXXX-9123
CCC社 新宿店  03-XXXX-4567
CCC社 千葉店  04X-XXX-8912
AAA社 東京支店 03-XXXX-1234
AAA社 千葉支店 04X-XXX-1289
BBB社 本社    03-XXXX-5678

という感じ会社内のグルーピングはそのままで社名同士をランダムに並び替えたいです。
(会社内でしたら支店の順番は前後して大丈夫です)

会社数は全部で4000近くあり所在地が違うので電話番号でも住所でも並び替えできません。

諸事情により社名で並び替えるということも出来ません。

皆様のお知恵をお貸しください、よろしくお願いします。

並び替えについて質問します。

A列    B列     C列
AAA社 東京支店 03-XXXX-1234
AAA社 千葉支店 04X-XXX-1289
BBB社 本社    03-XXXX-5678
CCC社 渋谷店  03-XXXX-9123
CCC社 新宿店  03-XXXX-4567
CCC社 千葉店  04X-XXX-8912

のような表があります。

これを社名のグルーピングはそのままにしてランダムに並び替えたいのですがいい方法はありますか?
たとえば

CCC社 渋谷店  03-XXXX-9123
CCC社 新宿店  03-XXXX-4567
CCC社 千葉店  04X-XXX-8912
A...続きを読む

Aベストアンサー

___A___B_____C______D__
1 会社名 本支店  電話番号
2  CCC社 渋谷店  03-XXXX-9123
3  CCC社 新宿店  03-XXXX-4567
4  CCC社 千葉店  04X-XXX-8912
5  AAA社 東京支店 03-XXXX-1234
6  AAA社 千葉支店 04X-XXX-1289
7  BBB社 本社   03-XXXX-5678

のようになっているとします。1行目はタイトル行です。

D2セルに =IF(A2<>A1,INT(RAND()*10000),D1)
として、データ分コピーします。

この状態でD列で並べ替えます。


人気Q&Aランキング