Excel (一般機能)

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

 
(指定なし : 指定なし)
ある数を以下のように分解したいのですが、関数で実現可能でしょうか。
投稿日時: 23/10/05 08:42:37
投稿者: kumomakoto

ある数を以下のように分解したいのですが、関数で実現可能でしょうか。
 
ある数を分解する条件は以下となります。
ある数が1〜100までの場合は、ある数のままの数値を表示
ある数が101〜200までの場合は、100とある数から100をマイナスした数値を表示
ある数が201〜300までの場合は、100と100とある数から200をマイナスした数値
ある数が301以上の場合は、ある数値のまま表示
 
・ある数が15の場合
  15
・ある数が73の場合
  73
・ある数が126の場合
  100、26
・ある数が250の場合
 100、100、50
・ある数が280の場合
 100、100、80
・ある数が380の場合
  380
   

回答
投稿日時: 23/10/05 09:04:24
投稿者: Suzu

入力値は判るのですが、
出力は、どこ に出すのですか? 1セル? 複数セル?
1セルなら、どう表示するのでしょうか?
 
条件分岐が必要でしょうから、IF関数を使う事になるでしょう。
 
1セルに、"," カンマ 区切りでなら
 
=IF(A1<=100,A1,IF(AND(100<A1,A1<=200),"100," & A1-100,IF(AND(200<A1,A1<=300),"100,100," & A1-200,A1)))
 
になるかと。
 
・0未満もあって、その場合、べつ条件になる場合や
・提示された条件だと、100より大きく 101未満 の小数点は条件に含まれません。
 その場合は、表示しないとか別の条件になる事も考えられるのでしょうか?
 
基本は IF関数を使い分岐になりますから、そのあたりはご自分で上記関数を参考に
関数を考えてみましょう。

回答
投稿日時: 23/10/05 12:04:41
投稿者: んなっと

Excelのバージョンを必ず選んでください。
 
   A  B  C  D
1  75  75     
2 175 100  75   
3 275 100 100  75
4 375 375     
5 300 100 100 100
6 200 100 100   
7 100 100     
 
B1
=IF($A1>300,IF(COLUMN(A1)=1,$A1,""),IF($A1>100*COLUMN(A1),100,IFERROR(TEXT($A1-100*(COLUMN(A1)-1),"標準;;")*1,"")))
右方向・→下方向・↓

投稿日時: 23/10/05 22:18:29
投稿者: kumomakoto

Suzu さんの引用:
入力値は判るのですが、
出力は、どこ に出すのですか? 1セル? 複数セル?
1セルなら、どう表示するのでしょうか?
 
条件分岐が必要でしょうから、IF関数を使う事になるでしょう。
 
1セルに、"," カンマ 区切りでなら
 
=IF(A1<=100,A1,IF(AND(100<A1,A1<=200),"100," & A1-100,IF(AND(200<A1,A1<=300),"100,100," & A1-200,A1)))
 
になるかと。
 
・0未満もあって、その場合、べつ条件になる場合や
・提示された条件だと、100より大きく 101未満 の小数点は条件に含まれません。
 その場合は、表示しないとか別の条件になる事も考えられるのでしょうか?
 
基本は IF関数を使い分岐になりますから、そのあたりはご自分で上記関数を参考に
関数を考えてみましょう。

 
有難うございます!たいへん助かります。
追加でご質問させてください。
仰る通り表示する場所の指定がなく失礼しました。
またある数値は整数のみとなっています。
以下の場所に表示する場合は、A2、A3、A4にそれぞれどのような関数を入力すればよいでしょうか。
ご教示ください。
 
ある数値がA1に入力する想定です。
・ある数が15の場合
  A2:15
  A3:0
  A4:0
 
・ある数が73の場合
  A2:73
  A3:0
  A4:0
 
・ある数が126の場合
  A2:100
  A3:26
  A4:0
 
・ある数が250の場合
  A2:100
  A3:100
  A4:50
 
・ある数が280の場合
  A2:100
  A3:100
  A4:80
 
 

回答
投稿日時: 23/10/06 05:12:58
投稿者: んなっと

=IF(A$1>300,IF(ROW(A1)=1,A$1,0),IF(A$1>100*ROW(A1),100,MAX(0,A$1-100*(ROW(A1)-1))))
下方向↓

投稿日時: 23/10/07 03:01:27
投稿者: kumomakoto

んなっと さんの引用:
=IF(A$1>300,IF(ROW(A1)=1,A$1,0),IF(A$1>100*ROW(A1),100,MAX(0,A$1-100*(ROW(A1)-1))))
下方向↓

 
すごいです!有難うございます!大変助かりました!!