ヒントではなく、(いくつか考えられる解決方法の内1つとしての)解です。
どうしても自分では解決できない等の場合に下記の方法で試してみてください。
Aシートについて
Aシートは編集していませんが、運用していく中でデータが追加されることと思います。
Aシート(表示そのまま)
Bシートについて
Bシートには
Cシートから費目に対応するコードと、
Cシートに表示した集計から順番にコードを表示しています。
Bシート(表示そのまま)
Bシート(数式表示)
この解決の要になる関数を下記で説明します。
(Excelでは関数にコメントが記入できないため、便宜上Javaコードとして記載します。)
java
1// C4セルの関数(D4より右側セルにもそのままコピペ可能)
2=IFERROR(
3 IF(C$4<>"", // C4セルに費目入力があるか
4 VLOOKUP(C$4,'C'!$A:$B,2,FALSE), // 1)ある場合、Cシートからコードを取得
5
6 INDEX('C'!$B:$B,MATCH(COUNTIF($C$4:C$4,""),'C'!$E:$E,0),1)), // 2)Cシートからランクに対応するコードを取得
7 // VLOOKUPの代わりにINDEX関数を使用してCシートからコードを取得しています。(キーとなるランク値を一番左にしなかったためVLOOKUPが使えません)
8 // 検索キーはCOUNTIF関数の結果で、セル自身より左の空白セルを数えて検索するランク値としています。
9
10"") // 費目に対応するコードが無い or (費目記入なしで)ランクに対応するコードが無い
11 // → 1、2の結果がエラーの場合、空白
Cシートについて
質問文「別のシート」を便宜上Cシートとして作成しました。
Cシートには下記を表示しています。
「費目、コードの対応表」、
Bシートに費目の記載があるかの確認欄、
Aシートでの出現回数と出現ランキング(重複を同率にしない、Bシートに記載のあるものは除外する)
Cシート(表示そのまま)
Cシート(数式表示)
以上、
ご参考になりますでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/06 14:53
2016/03/06 23:56 編集
2016/03/08 01:09