- ベストアンサー
エクセルでの集計で悩んでます
- エクセルでの集計について悩んでいます。セルを参照して混載の合計距離を算出したいです。
- また、セルを参照して直送の距離も算出し、混載と直送の距離を表示したいです。
- 具体的なマクロや関数の設定方法を教えていただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
かなり難しい対応になりますね。 次のようにいくつかな作業列を使って対応することになります。 AJ6セルには次の式を入力して下方にオートフィルドラッグします。 =IF($B6="","",IF($B6<>$B5,$F6&"/"&$H6,IF(AND(ISNUMBER(FIND($F6,AJ5)),ISNUMBER(FIND($H6,AJ5))),AJ5,IF(ISERROR(FIND($F6,AJ5)),LEFT(AJ5,FIND("/",AJ5)-1)&$F6&MID(AJ5,FIND("/",AJ5),20),IF(ISERROR(FIND($H6,AJ5)),AJ5&$H6,""))))) AK6セルには次の式を入力して下方にオートフィルドラッグします。 =IF($B6<>$B7,$B6,"") AL6セルには次の式を入力して下方にオートフィルドラッグします。 =IF($Y6="","",$Y6&"/"&$Z6) AM6セルには次の式を入力して下方にオートフィルドラッグします。 =IF(AB6="","",AB6&AC6&AD6&"/"&AE6&AF6&AG6) 最後にW6セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(COUNTIF(B$6:B6,B6)>1,COUNTIF(AK:AK,B6)=0),"",IF(COUNTIF(AL:AL,INDEX(AJ:AJ,MATCH(B6,AK:AK,0)))>0,INDEX(AA:AA,MATCH(INDEX(AJ:AJ,MATCH(B6,AK:AK,0)),AL:AL,0)),INDEX(AH:AH,MATCH(INDEX(AJ:AJ,MATCH(B6,AK:AK,0)),AM:AM,0)))) お示しのデータについて検証したところ番号2の場合には#N/Aとエラーが表示されました。この原因は2号車の入荷先が上の行で”い”となっており、下の行で”あ"となっていることによるものです。出荷先や、入荷先については入力の順序を常に同じにしておくことが必要です。すなわち、最初は”あ”で次が”い”になうことが必要です。この順序を守らない場合にはいたずらに式が複雑になり関数での対応はあきらめたほうがよいでしょう。
その他の回答 (2)
- layy
- ベストアンサー率23% (292/1222)
少なくとも直送か混載かを区別するセルは求めておく。 6行目と14行目は同じ入出荷でも違いますよね。これを同じ次元で検索できれば今やっている機能の応用で可能ではないでしょうか。 例えば 直送マスタをベースに、6行目に「A」の「あ」の「直」で「10」、15行目に追加で「A」の「あ」の「混」で「100」という情報もあれば求めているものに近くなります。「B」の「あ」の「混」で「100」までは求め上で要らない前提です。このデータ群は違うものとして距離マスタとでもつける。逆に混載マスタをベースにしても同じ。 補足で 組み合わせはパターンコードを用意する。 内容によって検索場所や方法変えるのは面倒です。 参考になれば。
補足
>少なくとも直送か混載かを区別するセルは求めておく。 これは出来ました。 >6行目と14行目は同じ入出荷でも違いますよね。 >これを同じ次元で検索できれば今やっている機能の応用で可能ではないでしょうか。 なんとか、応用してできました。 ただ、複雑な関数になってしまって、自分でも本当にあっているのか微妙な感覚です。
- nattocurry
- ベストアンサー率31% (587/1853)
回答ではなくてすみません。 ここまで複雑だと、関数だけでやるには、相当難しいと思います。 私には解りませんでした。 マクロでなら可能だと思います。 簡単にサンプルマクロを作れるほど簡単ではありませんが、作れることは確かです。 これを機に、マクロを勉強されてはいかがでしょうか?
補足
マクロは半年くらい前から学習しているのですが、ごく基本的な 機能を理解しただけなので、まだ使いこなせていません。 いいきっかけなので、もう一度マクロが使用できるやってみます!!
お礼
毎回、B列・F列・H列を並び変えて表示させることにしました。 そしたら、何とか表示させることができました。 INDEX関数・MATCH関数のネストなど、今まで活用できなかった 機能を知ることができました。 ありがとうございました!