Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : 指定なし)
OR 関数の使い方
投稿日時: 25/02/04 14:50:21
投稿者: しん88

いつもお世話になりありがとうございます。
 
単価表と表示するシートがあります。
単価表のA,B列にコードが書かれております。
このこーどから単価を表示シートD1セルに代入したいと思っています。
A列B列の単価コードは重複するものがあります。
 
===========================
単価表シート
   A   B   C    D    E   F・・・
1 車両  車両   電車  電車
2          昼   夜    昼   夜
        
3  111  113   1000  1200   1400  1600 
4  112      800  1000   1100  1300
5  113      1000 1200   1400  1600
6      221  1200  1300   1000  1500 
7   115      600  700   800  900
===========================
表示シート
   A   B   C   D  
1  221  電車  夜  1500
 
D1=
INDEX(単価表!$A$1:$Z$500,OR(MATCH($A1,単価表!$A$1:$A$500,0),MATCH($A1,単価表!$B$1:$B$500,0)),MATCH($B2&$C2,単価表!$A$1:$Z$1&単価表!$B$2:$Z$2,0))
 
よろしくお願いいたします。

回答
投稿日時: 25/02/04 15:41:23
投稿者: んなっと

Excelのバージョンを必ず選んでください。
あと、113は単価も2つ返すのでしょうか?
E1:E2が空欄なのはなぜ?
 
 
   A   B   C   D   E   F
1 車両 車両 電車 電車 バス バス ←もしこうなら
2        昼  夜  昼  夜
3  111  113 1000 1200 1400 1600
4  112     800 1000 1100 1300
5  113    1000 1200 1400 1200
6     221 1200 1300 1000 1500
7  115     600  700  800  900
 
   A   B  C   D   E
1 113 バス 夜 1600 1200
 
D1
=IFERROR(INDIRECT("単価表!"&TEXT(AGGREGATE(15,6,ROW($3:$200)*1000+MATCH($B1&$C1,単価表!$1:$1&単価表!$2:$2,0)/(単価表!$A$3:$B$200=$A1),COLUMN(A1)),"!R0!C000"),FALSE),"")
右方向・→
 
 
 
   A   B   C   D   E   F
1 車両 車両 電車 電車       ←A列はC:D列から、B列はE:F列から返すなら
2        昼  夜  昼  夜
3  111  113 1000 1200 1400 1600
4  112     800 1000 1100 1300
5  113    1000 1200 1400 1200
6     221 1200 1300 1000 1500
7  115     600  700  800  900
 
   A   B  C   D   E
1 113 電車 夜 1600 1200
 
D1
=IFERROR(INDIRECT("単価表!"&TEXT(AGGREGATE(15,6,ROW($3:$200)*1000+{3,5}+($C1="夜")/(単価表!$A$3:$B$200=$A1),COLUMN(A1)),"!R0!C000"),FALSE),"")
右方向・→

投稿日時: 25/02/04 15:58:46
投稿者: しん88

んなっとさま 早速ありがとうございます。
Excelのバージョンですが2019です。選択もれがあり申し訳ありません。
 
まず 入力に漏れがありました。
A1、A2はコード1、コード2 で見出しになります。
3行目から A列、B列はコードが入力されており、重複するコードや空白の歯抜けセルもあります。
コードが一緒であれば金額が一緒です。 
A列空白でB列のみにコードが入力されていることもあります。
 
よろしくお願いいたします。
  

回答
投稿日時: 25/02/04 16:33:03
投稿者: んなっと

   A  B   C   D   E   F
1 コ1 コ2 電車 電車 バス バス ←E1:E2の空白の説明は?
2       昼  夜  昼  夜
3 111 113 1000 1200 1400 1600 ←┐
4 112    800 1000 1100 1300  ├113がある行は必ずすべての単価が同じ。
5 113    1000 1200 1400 1600 ←┘
6    221 1200 1300 1000 1500
7 115    600  700  800  900
 
 
   A   B  C   D
1 113 バス 夜 1600
 
D1
=IFERROR(INDEX(単価表!$C$3:$Z$200,MATCH(0,0/MMULT(1*(単価表!$A$3:$B$200=$A1),{1;1}),0),MATCH($B1&$C1,INDEX(単価表!$C$1:$Z$1&単価表!$C$2:$Z$2,),0)),"")
=IFERROR(AGGREGATE(15,6,単価表!$C$3:$Z$200/(単価表!$C$1:$Z$1&単価表!$C$2:$Z$2=$B1&$C1)/((単価表!$A$3:$A$200=$A1)+(単価表!$B$3:$B$200=$A1)>0),1),"")

投稿日時: 25/02/04 17:21:01
投稿者: しん88

ありがとうございます。
 
バス バス ←E1:E2の空白の説明は
んなっとさまのご推察のとおりで、右方向に続いています。
 
おかげさまで単価を代入することができました。
いつもいつも本当にありがとうございます。
 
今後ともよろしくお願いいたします。