こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelの処理:番号の摺合?を教えてください。

見づらくて申し訳ありません。
年表に例えると、1937年からの出来事の記録を想定します。
この飛び飛びの年の間に、1938年~1945年を入れて
1947年~1956年を入れて…。
結果、右側のように1937年~1956年~が欠落の無いような年表にしたいのです。
高度で簡単な方法も知りたいのですが、知識レベルの低い私が使用したいので
易しく教えてください。

投稿日時 - 2018-02-09 08:24:39

QNo.9427157

困ってます

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

 欠番のない年表が、Hから始まっていますが、便宜上で、本当はAから始めたいのかもしれません。しかし、関数を使う以上、前のデータは保存しておく必要があるので、Hから始める様にしました。
 C・Dに出来事があり、E~Gは空白としました。左の年表が何行あるかわからないので、 100行にしました。もっとある場合、式を変更して下さい。
 1977年の様に2行に跨る場合、L列とM列に表示するようにしました。必要なければL1・M1は入力しなくてもいいです。
I1 =IFERROR(VLOOKUP(H1&"年",B$1:D$100,1,FALSE),"")
J1 =IFERROR(VLOOKUP(H1&"年",B$1:D$100,2,FALSE),"")
K1 =IFERROR(VLOOKUP(H1&"年",B$1:D$100,3,FALSE),"")
L1 =IF($B2="",IFERROR(INDEX(C1:C100,MATCH($H1&"年",$B$1:$B$100,FALSE)+1,0),""),"")
M1 =IF($B2="",IFERROR(INDEX(D1:D100,MATCH($H1&"年",$B$1:$B$100,FALSE)+1,0),""),"")
下へコピー
 このままでは、何もないところに、0が表示される事があるので、セルの書式設定・ユーザー定義で# にして下さい。

 Aからの表にしたい場合、シート全体をコピーして、形式を選択して貼り付け、値にします。その後A~G列を削除します。

投稿日時 - 2018-02-09 13:56:23

お礼

>L1 =IF($B2="",IFERROR(INDEX(C1:C100,MATCH($H1&"年",$B$1:$B$100,FALSE)+1,0),""),"")

この関数が、能力の限界を超えています。
既成の年表をExcelの一行を一年として表示して、
出来事の無い年は表示されていないので、
(1938)年とかのセルだけを挿入して左側は空白としたいのです。
INDEX~MATCH関数は、テンプレートで見ただけで、まだ使用できません。ここらが、このキモですね。
先ずは、解析して仕組みを理解できるよう心がけます。
ありがとうございます。 。

投稿日時 - 2018-02-12 18:03:24

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

1行1年にして、年を入れた行でソートをかけるのはどうですか?

1年の出来事が2行になっている場合、1セルの中で2行にして、1年の出来事を1行にしておく。
B    C     D
1981年 CD企画発… スペースシャトル…
1957年 レコードが…南極に昭和基地…
1946年 ・・・・・
といった形にしておく。

「データ」タブをクリックし、「並べ替えとフィルター」グループの「並べ替え」と押して開いた「並べ替え」にて、
「最優先されるキー」を年号の入ったB列にする。
そしてOKを押せば、

1946年 ・・・・・
1957年 レコードが…南極に昭和基地…
1981年 CD企画発… スペースシャトル…

と、年号順に並ぶと思うのですが、これではだめでしょうか?

参考URL:http://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=016326

投稿日時 - 2018-02-09 09:03:41

お礼

1946年 ・・・・・
↓ここに、1947~1956年の行を入れる
1957年 レコードが…南極に昭和基地…
↓ここに1958~1980年の行を入れる
1981年 CD企画発… スペースシャトル…
上記のような処理を素早くしたいのです。
ありがとうございます

投稿日時 - 2018-02-12 17:37:47