アプリ版:「スタンプのみでお礼する」機能のリリースについて

 下記のような形式の車種別の生産予定表があるとします。


  A   B  C  D  E  F  G  
1車種 4/1 2  3  4  5  6日  
2車1  20    30 50
3車2     60 80
4車3              40
5車4  50
6車5     40 30   
7車6              70 10台

 のような少ロットで変動の多い生産予定表について
 4月X日の車Xの生産数を知るにはINDEX+MATCH関数、VLOOKUP+MATCH関数で表を縦横に検索すれば交差するセルの台数を返しますが、仮に台数が分かっているとして、逆の論理として
 車1の生産があった日が4月1日、3日、4日であるという生産対象日を返したい。
 4月3日の生産は車1、車2、車5であるという車種名を返したい。

 これを出来るように関数式を考えていますが、上手く答えを出せません。セルに返る戻り値が一つではありません。
一つの関数式では無理なんでしょうか?VBAが分からないので関数で出せると助かるのですが、方法がありましたら、どなたかご教導お願い申し上げます。
 
 
 

A 回答 (2件)

既存の関数のみで行う場合、結果は連続した文字列として1個のセルに表示することになります。

単純化のため、ご例示のシートをさらにコンパクトにします。カラムが揃わない場合、メモ帳に貼り付けてご覧ください。

*| A|B|C|D|E|
1|  |1|2|3|
2|車1|4|3| |
3|車2|7| | |
4|車3| | |5|
5|

E2に定義
=IF(B2<>"",$B$1&" ","")&IF(C2<>"",$C$1&" ","")&IF(D2<>"",$D$1&" ","")
以下、E4まで下へドラッグ

B5に定義
=IF(B2<>"",$A$2&" ","")&IF(B3<>"",$A$3&" ","")&IF(B4<>"",$A$4&" ","")
以下、D5まで右へドラッグ

結果
*| A|   B|  C|   D|E |
1|  |   1|  2|   3| |
2|車1|   4|  3|    |1 2 |
3|車2|   7|   |   3|1 3 |
4|車3|    |   |   5|3 |
5|  |車1 車2|車1 |車2 車3|  |

実際のシートの縦横の大きさはいかほどでしょうか。「数式バー」で編集可能な文字列の長さには限りがあります。この方法では実用に耐えない場合、VBAマクロでユーザ定義関数を作成しセルでそれを参照するという方法を検討してください。
    • good
    • 0
この回答へのお礼

ご回答有難うございました。中々、これが出来ず、頭を痛めていました。
 解説いただいた数式を参考にトライしてみます。
 VLOOKUPは検索値より左側にあるセルは値を戻せないし、OFFSETでは基準セルの左側または上にあるセルの検索の方法がが分かりません。どうすればいいか悩んでいます。
 例えば車3が4月5日に40台挙がっていますが、40と表示されているセルを基点に上方向の生産対象日を取得する方法、またこれと同様、40を基点として左方向の車種名セルを取得する方法を考えています  40=4月5日、40=車3を数式で表示し、別の任意のセルに取り出したいのです。この場合、使えそうな関数ってあるのでしょうか?。(ADRESS,INDIRECT,COUNTIF,SUMPRODUCTなんでしょうか?)
仮にあったとして、式をフィルドラッグで複写できますか?

 
 VBAやユーザー関数は今の私には荷が重いので、標準的な関数のネスト程度しか出来ません。
 やりたいことが分かっているが『この関数をどう使う、IF関数をどのように条件付けするか』ということがすぐに頭に浮かんできません。
 実際のシートはもっとデーターが多いです。毎回、表が更新されるので汎用性をどう付けるかで、いつも困っています。
 丁寧な回答、本当に有難うございました。

 

お礼日時:2006/04/27 23:08

#1です。

訂正させていただきます。
処理前のシートのセルD3が空でした。
正しくは「結果」と同じく以下です。
3|車2|7| |3|
    • good
    • 0

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