• 締切済み

エクセルの表作成で困っています。

条件:その行の左から1番目の値 < その列の上から1番目  真の場合:その行の左から2番目の値  偽の場合:その行の左から3番目の値 という表を作成したいのですが、関数の式の作り方がわかりません。 IF関数を使えばよいのでしょうか。 それとも他にもっと良い方法があるでしょうか。           201001 201002 201003 201004 201005・・・ 200903 あ い    い   い   い   い   い・・・ 201003 か き    か   か   か   き   き・・・ 201112 さ し    さ   さ   さ   さ   さ・・・ ・ ・ ・ というような表を作成したいのです。 宜しくお願いいたします!

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

実例を文章で1例説明すれば判りやすいのに。 例 A列に値とその列の第1行目のデータを比較する。 A列の値>=第1行目の値 同行B列の値をセット A列の値<第1行目の値 同行A列の値をセット したい。 (A列と第1行は日付らしいが、文字列で入っているのか?そのまま比較して大丈夫だろうね) 上記の内容をエクセルのス関数式化かするぐらい、初心者でも出来るだろう。IF文での質問というのが、なぜ質問するのか理解できない。 ーー ただし 式を複写すると、式のセルの行や列が移動するので、その点は相対参照、絶対参照、混合参照は勉強しておいて、使い分けないといけない。 本件ではここがポイントかな。 ==== 例データ - - - 201001 201002 201003 201004 201005 200903 あ い い い い い い 201003 か き か か か き き 201112 さ し さ さ さ さ さ D2の式は =IF($A2>=D$1,$B2,$C2) 式を右方向に複写。 次に D2:X2(例で実際は右端列を指定)の式を下方向に複写。 結果 上記のD2の右方向および下方向のデータ

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

A2セルから下方に200903以下の数字がD1セルから右に201001以下の数値が並んだ表として解答します。 D2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR($A2="",D$1=""),"",IF($A2<D$1,$B2,$C2)) あなたの表のように結果を表示させるためには<が逆で次の式になりますね。 =IF(OR($A2="",D$1=""),"",IF($A2>D$1,$B2,$C2)) これらの式ではセル番号に絶対参照と相対参照の二つの形式をうまく使い分けすることが必要ですね。 $マークの付いた絶対参照はセルの式をドラッグして他のセルにコピーしても変わりません。$A2のようにした場合には右横方向にドラッグしてもAは変わりませんね。反対にD$1としている場合には右横方向にドラッグしても$1は変わりません。DがE、Fと変わっていくだけですね。また、下方にドラッグしても行番号は変わりません。常に1行目のデータを見ていることになります。 なお、OR($A2="",D$1="")はA列のセルが空の場合や1行目のデータが空の場合ということになりますね。

noname#144013
noname#144013
回答No.1

こんにちは。 解釈が間違っていた場合はすみません。 > 条件:その行の左から1番目の値 < その列の上から1番目 >  真の場合:その行の左から2番目の値 >  偽の場合:その行の左から3番目の値 上記の条件ですが、ご提示の表を見る限り、以下のように式の条件が逆になって いるように思われます。   条件:その行の左から1番目の値 ≧ その列の上から1番目    真の場合:その行の左から2番目の値    偽の場合:その行の左から3番目の値 ↑こちらの判定条件だったとして、下記のようなセル構成にした場合のセルに設定 する数式の一例を掲載します。        A    B  C     D      E      F      G      H     1                201001  201002  201003  201004  201005   2  200903  あ  い    い      い     い      い      い     3  201003  か  き    か     か     か      き      き     4  201112  さ   し    さ      さ      さ      さ      さ     :    :      :      :      :      :      :      :   :    :      :      :      :      :      :      :  <セルの数式>   D2 =IF(OR(ISNUMBER($A2)=FALSE,ISNUMBER(D$1)=FALSE),"",IF($A2>=D$1,      IF($B2="","",$B2),IF($C2="","",$C2)))   ※↑の数式は表示の都合上2行になっていますが、実際は1行で記述します。   ※D2以外のセルは、D2を選択してオートフィルでコピーするか、D2をコピーして    他のセルに数式(「形式を選択して貼り付け」を使用)をコピーします。  <数式の補足>   1)セルの参照形式(相対参照、絶対参照)の違い($を付けるか、付けないか)     に注意して下さい。   2)ISNUMBER関数により、A列及び1行目のセルに数値が入っていなかった     場合は、結果を空白にするようにしています。   3)B列またはC列のセルが空白だった場合も、結果を空白にするようにして     います。 参考までに、上記の設定のExcelシートのキャプチャ画像を添付しました。 以上です。参考になれば幸いです。

goo417
質問者

お礼

ありがとうございます! 夜中だったので、まさかこんなに早くご回答をいただけるとは思わず 感動です。 まさしく私が求めていた式です。 とてもわかりやすい解説とキャプチャ画像まで添えていただき、 初心者の私でも理解しやくかったです。 丸1日以上かけても解けなかったものが解けて とても助かりました。 本当にありがとうございました。