はじめまして!今、エクセルでデータ入力をしていたのですがファイルに閉じるときになってはっと気がついたことがあります。作成しているのは会社別の登録書をいつ発行したかというデータを個人で管理しているデータです。
1:田中さん 田中運輸 2003年8月31日登録
2:佐藤さん 佐藤商事 2005年9月2日登録
・・・
158:田中さん 田中運輸 2004年8月31日登録
・・・
というようなデータを入力していたのですが、新規のデータは、挿入して随時増やしていく、という事だったようです。私は、個人名(たとえば田中さん、佐藤さん)で管理していると思ってしまい、新規作成したあと、検索をかけて、勝手に同じ名前の人は、数行に渡って並んでいる状態にして更新していたので、行番号が、ファイル閉じるときになって間違っていたことに気がつきました。
・・・
ブックを2つ起動して、見比べながら違っている行を切り取り-行末に貼り付け・・この作業を繰り返していくとかなりの時間のロスになってしまいます。
自分のミスですからしょうがないのですが、もし、「こんなの、こうすればいいよ」と言ってくださる方がいらしたら、是非教えてください。
今後も発生するかもしれないミスのため、
いろいろな方法が知りたいです。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
こんにちは。
(私が、アップしようとしたら、回答の補足に書かれていましたので、重複する部分は割愛してください。どうやら、私の予想は合っていたように思いますが。)
オリジナルの元ファイルはあるようですね。それと見比べて修正している、とのように受け取れました。
回答者にシミュレートできるぐらいのサンプルはご提示していただけたらと思います。
たぶん、「並べ替え」機能を使ったのでしょうか?だから、オリジナルの行番号を換えてしまったので、それを、元に戻して、ダブっているものは、行末に移したいというように読めました。
つまり、以下のようにしたい、ということですか?
失敗に気が付いた表
1:田中さん 田中運輸 2003年8月31日登録
2:田中さん 田中運輸 2004年8月31日登録
3:佐藤さん 佐藤商事 2005年9月2日登録
↓
'途中までは、オリジナルファイルと同じ。
1:田中さん 田中運輸 2003年8月31日登録
2:佐藤さん 佐藤商事 2005年9月2日登録
・・・
158:田中さん 田中運輸 2004年8月31日登録
もし、そういう状況だと、やはり、「並べ替え」を使うしかありませんね。
最初のこのような数式を、任意の補助列の行頭から入れます。(Book2.xlsは、元のデータ)
=MATCH(A1,[Book2.xls]Sheet1!$A$1:$A$120,0)+(COUNTIF(A1:$A$1,A1)-1)*200
「200」 というのは、その行の最後尾の次の行数
それで、その補助列で「並べ替え」をすれば、同じ名前のものは下に追いやられます。
並べ替えでもそういう方法があるんですね!
(普通のメニューから起動するものしか知らなかったです;;すみません、超初心者で。。。。)
任意の補助列というのは、新たに列を挿入してそこに数式を入れていけばよいのですね。
MATCH関数は見たのですが、思いつきませんでした。一度も使用したことがないので、わくわくします。
ありがとうございました。
No.5
- 回答日時:
早速#4の補足ありがとうございました。
まだもやもやした箇所がありますが、私個人のこととして、
結果として、#3のご回答と近くなリましたが
下記でどうでしょう。
Book12(原本)の名前の右列に番号が来れば、VLOOKUP関数が使えるのですが。質問者作成Book11に持って来たいのは
Book12のどの項目でしょうか?。
下記はBook12の行番号になってますが、よろしいですか?。
BOOK12(原本)のSheet1のA1:A6に
山田
岡山
山中
岡田
田中
山田
とあるとします。
--------
Book11で
A1:A8に
A列 B列(=式の結果)
相田新規
井上新規
岡田4
三田新規
竹中新規
山中3
岩村新規
のとき
=IF(ISERROR(MATCH(A1,'C:\Documents and Settings\xxx\My Documents\[Book12.xls]Sheet2'!$A$1:$A$100,0)),"新規",MATCH(A1,'C:\Documents and Settings\xxx\My Documents\[Book12.xls]Sheet2'!$A$1:$A$100,0))
と入れて、下へ複写する。
結果は上記B列の通り。
'C:\Documents and Settings\xxx\My Documents\は補充されるので
式入力は[Book12.xls]でよい。
Match は見つけた最初の行しかとらないのですが、これが好都合かな?
これ以上の自動化はVBAの出番でしょうか。
凄いですね!Bookわたりの式は初めて見ました。
また、B列を実際に式が実行された後まで記入してくださって、実行せずとも分かってしまうなんてありがたいことです。
この掲示板(質問版?)で、自分では思いつかないたくさんの答えをいただきました。全てやってみます!
私は、勘違いが多いため、このテの間違いをやってしまうことが結構あります。。。本当に助かりました。
ありがとうございました。(^o^)。
No.4
- 回答日時:
余分なことが書いてあるためもあって、質問がわかりにくい。
多くの人が読むと予想されるので、下記のYNは、はい・いいえを、それ以外は文章で、補足してください。
(1)2つファイル(ブック)A,Bがある。 YN
(2)自分が触った(作った)のはBの方。 YN
(3)Aは原本的ファイルで誰も今回作業で触ってない。 YN
(4)この質問はBのデータの順序に関する質問である。Bの順序を 変えたい YN
(5)順序はAの方式にすべきである。 YN
(6)Aの順序を言葉で表現してください。
(7)Aの順番とBの順番の方式が違っている。 YN
(8)現状Bの順序を言葉で表してみてください。
(9)Bをどのように並べたいのか、文章で表現してみてください。
(10)Bを並べ替えるための、手がかりで思いつくことは。
(11)Aの順序の方式を問題にせず、とにかくAの順序に並べたい
YN
ーーーー
別の質問として、1:と158:が日付的に、なぜダブっているか?
>新規のデータは、挿入して随時増やしていく
どこへ?
>検索をかけて、勝手に同じ名前の人は、数行に渡って並んでいる状態にして更新
なぜ検索をかけたのか?
この回答への補足
余分なことが書いてあるためもあって、質問がわかりにくい。
::すみません。状況を説明したほうがいいのかと思って。。。
多くの人が読むと予想されるので、下記のYNは、はい・いいえを、それ以外は文章で、補足してください。
(1)2つファイル(ブック)A,Bがある。 ::Y
(2)自分が触った(作った)のはBの方。 ::Y
(3)Aは原本的ファイルで誰も今回作業で触ってない。 ::Y
(4)この質問はBのデータの順序に関する質問である。Bの順序を 変えたい ::Y
(5)順序はAの方式にすべきである。 ::Y
(6)Aの順序を言葉で表現してください。 ::行番号=登録書類番号として割り振ってあり、その番号が登録書ファイルのindexになっている。
(7)Aの順番とBの順番の方式が違っている。 ::Y
(8)現状Bの順序を言葉で表してみてください。
::行番号は昇(?)順、個人の登録書データが複数行、そのため個人で登録書がいくつあるのかを見るのにはよいが、登録書番号が最初割り振られていたものとは違っているため、indexの役割が果たせなくなった。
(9)Bをどのように並べたいのか、文章で表現してみてください。
::
(1)行番号=登録書index
(2)新規で登録する場合、個人別になるのではなく、登録書indexを新規に作成し、その番号に割り振られたページに新規登録書をファイルに閉じる
(10)Bを並べ替えるための、手がかりで思いつくことは。
::最初の状態になっているデータと見比べる。
(11)Aの順序の方式を問題にせず、とにかくAの順序に並べたい
:: N
ーーーー
::Aの順序は変えない、新たに番号を割り振って作成していきたい
別の質問として、1:と158:が日付的に、なぜダブっているか?
>新規のデータは、挿入して随時増やしていく
どこへ? ::行末へ順次。
>検索をかけて、勝手に同じ名前の人は、数行に渡って並んでいる状態にして更新
なぜ検索をかけたのか?
::依頼されたときに、『その人がどれだけ更新しているかを管理する』ファイルと説明を受け、意味を汲み違えていたため。また、別の管理ファイルがあり、それと混同もしていたのだと思う。
::一応、このような答えになりました。
No.2
- 回答日時:
#1です。
だめなら。両方のブックを開きます。
どちらかのブックに新しいシートを追加します。
そのシートの先頭行のあるセルに下記の式を入力します。
=IF([book1.xls]Sheet1!A1=[book2.xls]Sheet1!A1,"○","違う")
book1.xls,book2.xlsは、比較したいブック名
Sheet1は、それぞれのシート名
A1のAは、田中運輸などが入っている列を指定します。
で、先頭行のあるセルに「○」が表示されたら、その行を下までコピーします。
すると違いが出ている行から「違う」が表示されますのでその行に対して処理する。
ありがとうございます!
昔、同じシート内にあるデータの比較はやった事があったのですが、シートが違うときの方法が分からなかったので助かります。
手順が書いてあり、私でもすぐできそうです。
ありがとうございました。
No.1
- 回答日時:
例の「1:」「158:」は、セルに入力された値なのでしょうか。
又は、「2003年8月31日登録」は時系列でしょうか。例では、2005年の後ろに2004年がきていますが...もしも、データ順が保たれている列があれば、シート全体(あるいは必要部分を)を選択して、「データ」→「並べ替え」で該当列順にソートする手がありますがいかがでしょう。
この回答への補足
早速の回答ありがとうございます。ただ、ソートでは解決しないんです。
質問が要を得なくてすみません。
『1:田中さん 田中運輸 2003年8月31日登録
2:佐藤さん 佐藤商事 2005年9月2日登録
158:田中さん 田中運輸 2004年8月31日登録』
この状態はなぜかと言うと、人別に作成していたせいです。↑の状態にならなくてはいけないのに、現在は
『1:田中さん 田中運輸 2003年8月31日登録
2:田中さん 田中運輸 2004年8月31日登録(*この行が新規)
159:佐藤さん 佐藤商事 2005年9月2日登録』
というようになっているんです。(すみません、ややこしかったですね。焦っていたのではしょりすぎました。)
このような状態で登録されたため、行番号は昇順(?)になっているあため変ではないのです。本当は、新規に登録する行はその都度挿入して、行番号が増えていき、その番号で誰の登録書かを見るためのファイルなのに、番号で登録書が検索できない結果になってしまったのです。
そこで、もう保存してしまったので、元のデータ(book1)と新しいデータ(book2)を比較して、新たな行だけいったん、そのデータから削除して、再度、新規で行挿入をしていきたいという状態です。
申し訳ありませんが、比較方法を教えてください。
早速の回答ありがとうございました。
ただ、データの並べ替えではうまくいかないような作成の仕方をしてしまったので(というか、並べ替えてしまったためにダメになったので)シートとシートの比較か、ブックとブックの比較を知りたいのです。
orや、EXACT関数を使用するのか、それとももっといい方法があるのか調べながら分からなくなってきてしまって・・・。
質問補足をしましたので、もしご存知でしたら教えてください。
でも、初めてした質問での回答で、うれしかったです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- その他(プログラミング・Web制作) Python pandasについての質問です。 日付 名前 ◯月◯日 佐藤 ・ 伊藤 ・ 山田 ・ 2 2022/06/13 17:16
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報