はじめての親子ハイキングに挑戦!! >>

エクセル2007を使用しているのですが、IF関数について分からない事があるので分かる方アドバイスをお願いします。

A2には「お急ぎ便」「通常便」「日時指定便」のいづれかの文字が入力されています。
A3には「出荷予定日」  2018/12/1 など入力されています。
A4には「=A3+1」と入力して出荷予定日の翌日の日付が入力されるようにしています。 
     例えばA3が2018/12/1の場合には2018/12/2と表示されます。

私がやりたいことですが、A5のセルに下記の情報を入力したいです。

A2のセルに「お急ぎ便」という特定の文字が含まれている場合には、出荷予定日の翌日に到着させなければいけない為、A4の日付をA5セルに表示させるようにしたいです。

反対に「通常便」「日時指定便」の文字が含まれている場合には、A5セルに何も入力せずに「空白」にしたいです。

私も色々と試行錯誤しながら下記の関数がつかえそうだと考えてみましたが、この文字列はお急ぎ便という文字がはいっている場合は○を表示させて、入っていない場合は×と表示させるものですよね。

=IF(COUNTIF(A2,"*お急ぎ便*")=1,"○,"×")

上記の○の部分に、A4のセルで表示されている文字を表示させるようにしたいのですが、可能でしょうか?×の部分は単純に削除して空白にすればいいと思うので問題がないのですが、○の部分に=A3+1とかA4とか色々と入力しましたが、入力した内容がそのまま表示されてしまって、A4の日付をA5のセルに表示させるのはできないようです。

分かる方がいらっしゃったらアドバイス頂ければ助かります。どうぞよろしくお願いします。

A 回答 (2件)

>○の部分に=A3+1とかA4とか色々と入力しましたが、入力した内容がそのまま表示されてしまって



まずは、A5のセルの表示形式を日付にしましょう。

それから、A2には
>「お急ぎ便」「通常便」「日時指定便」のいづれかの文字が入力されています。
なので、部分一致にしなくても

A5=IF(A2="お急ぎ便",A4,"")

でよくないですか?それとも他に文字がプラスされることがあるのですか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

文字がプラスされるとかはないですね。
ご指定の方法で試したところ、無事に表示することができました。

助かりました。

お礼日時:2018/12/07 15:53

まず、COUNTIF(A2,"*お急ぎ便*")=1 は確かにお急ぎ便という文字列が「含まれる」ですが、その「含まれる」は"お急ぎ便ですよ"とか"うお急ぎ便所に行かないと!!"みたいな場合もありえると仮定しましょうという意味です。

あなたの条件では使う必要はありません。

=if(A2="お急ぎ便", A4, "")

この数式で日付じゃない4万いくつかの数値が出てきちゃう場合、それは単純に表示形式の問題なので、A5の表示形式を日付に設定してください。

ちなみに "=A3+1" とか "A4" のように引用符で包むのは間違いです。最近初心者でif関数を使うときにそう言うミスをする人が大勢出てます。文字列以外は包まないよう気をつけましょう。
    • good
    • 0
この回答へのお礼

この度は教えて頂いてありがとうございました。

お礼日時:2018/12/12 12:31

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Q月末の自動計算

月末火曜日の日付をスタートとして稼働日数を求めたいと思っています。

10月なら9/25~10/30まで
11月なら10/30~11/27まで
12月なら11/27~12/25までの日数を計算したいです。

月末水曜日になると当月の日数に自動で計算が切り替わるよう計算することは可能でしょうか。

わかる方がいれば教えていただきたいです。
※土日は日数に含んでOKです。

Aベストアンサー

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょうか?
その場合は、式中の「TODAY()」の部分を対象の日(=シリアル値)に置き換えればそのまま同じ計算が可能なはずです。
例えば、対象の日がA1セルに入力されているとするなら、TODAY()を全てA1に置き換えればよいといった感じです。

>ただ、水曜日になったら前日の火曜日分も含めて計算してほしいです。
翌日の水曜日を2日目と計算したいという意味でしょうか?
(No1の説明を読んでいただければわかりますが)現在の式は、水曜日は1(日目)と表示される式になっています。
修正したい場合は、No1の式より常に1日多い値になれば良いだけなので、式の最後に「+1」を加えれば、お求めの結果になると思います。

>とても複雑な回答で解読できなかったので教えていただけると幸いです
式は少々長いですが、全体としての構成は、単純にIFで場合分けした式になっています。
ご参考までに、大雑把な構成を言葉で示すならば・・・
『対象日(今日)がその月の最終火曜日より前なら、前月の最終火曜日からの日数を数え、後ならその月の最終火曜日からの日数を数える』
という式になっています。

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょう...続きを読む

Q【まとめる関数】

列を下のようにまとめたいのですが可能でしょうか。
わかる方がいればよろしくお願いいたします。
【C列】 【F列】 【G列】
A メロン 1個
A メロン 2個セット
A メロン 3個セット
A メロン 4個セット
A メロン 5個セット
A メロン 6個セット
A メロン 7個セット
A メロン 8個セット
B パイン 1個
B パイン 2個セット
B パイン 3個セット
B パイン 4個セット
B パイン 5個セット
B パイン 6個セット
C りんご 1個
C りんご 2個セット
C りんご 3個セット

▼上記の並びを下記の並びにまとめる方法が知りたいです。▼
【C列】 【F列】 【G列】
A メロン 1個2個セット3個セット4個セット5個セット6個セット7個セット8個セット
B パイン 1個2個セット3個セット4個セット5個セット6個セット
C りんご 1個2個セット3個セット

できればエクセル希望ですがエクセルじゃない方法であれば
それもご教授いただけたらと思います。

Aベストアンサー

添付図参照

I2: =IF(F2<>F1,G2,I1&G2)
F20: =VLOOKUP(C20,C$2:F$18,4,FALSE)
I20: =I19+COUNTIF(A$2:C$18,C20)
G20: =INDEX(I$2:I$18,I20)

Qエクセルについて。

次の数式を求める関数(下の方のプラン表)は、どんな数式を打てば良いのでしょうか?教えていただけると幸いです。

Aベストアンサー

単純な足し算ですよね。
添付画像のように作ったとして

[C8]=SUM($B$2,C$7,$B8)

これを[C8:F12]の範囲にコピーすればOK。

通常、数式のセルは、コピー貼り付けすると、移動先に応じてセルアドレスが変わってしまいますが、
「$」をつけることで、固定することができます。

上の式だと、どこに移動しても

$B$2 は B2 を参照するように固定される。

C$7 は 7行目 を参照するように固定される。
(式を下にコピーしても、7行目に固定される)

$B8 は B列 を参照するように固定される。
(式を右にコピーしても、B列に固定される)

ということになります。
$をつけて参照先を固定するのを「絶対参照」、
つけていない普通の場合は「相対参照」、
と言います。
より詳しいことは、このキーワードで検索して調べてみてください。

金額表示については、セルの書式から、
分類:通貨
記号:\
にしてあります。
実際のセルに「\」は入力されていません。

Qエクセルでの名前の定義について

エクセルで シート1の患者の単に名前が下にずらっと並んでいて、シート2にそれぞれの患者の情報が
横に列ごとの項目種類でならんでいた場合シート1の患者に名前の定義をし(例 S患者名)、シート2でも患者に名前を定義し(例 B患者名) それぞれお互いにクリックして見れるようにハイパーリンクをしたが、シート2でソートなどをした関係か、シート2からシート1はいいが、シート1からシート2はずれてリンクささってしまうが、どうしてか? ご教授ください。

Aベストアンサー

No.1です。

このやり方は名前の定義は不要です。手順に沿って行うだけでよいです。
A列には普通に名前を羅列します。(例 A2:Aさん、A3:Bさん、・・・)
B列には下記の手順にしたがって数式を入力します。
C列にはリンクしたい先の名前を記載します。(例 C2:Bさん、C3:Cさん、・・・)
こちらで試したときのデータの配置を添付しました。(そちらのデータの配置は把握しておりません)

No.2の回答で、うまくいかなかった理由は、数式のシート名の部分が『sheet』になっているためと思われます。そちらのファイルではシート名は『シート○○』ですよね?

ついでに、もう一点微修正しましたので、以下の手順と差し替えてください。
(数式を変えただけで手順は同じです)
最下部の※も参照ください。

◆手順
1.シート1のB2セルに『=HYPERLINK(CELL("address",INDEX(シート2!A:A,MATCH(C2,シート2!A:A,))),C2)』と入力して、下方向にコピペします。
2.シート1のC列にリンク先患者名(例:S患者名)を記入します。
3.シート2のB2セルに『=HYPERLINK(CELL("address",INDEX('シート1'!A:A,MATCH(C2,'シート1'!A:A,))),C2)』と入力して、下方向にコピペします。
4.シート2のC列にリンク先患者名(例:B患者名)を記入します。


シート名やセル参照はそちらのデータにあわせる必要があります。
リンク(C列)に指定した名前がもう一方のシートの名簿(A列)に存在しない場合、リンクがエラーになります。
あっているはずなのにリンクがエラーになるときは、F2キーを押してからEnterを試してください。

No.1です。

このやり方は名前の定義は不要です。手順に沿って行うだけでよいです。
A列には普通に名前を羅列します。(例 A2:Aさん、A3:Bさん、・・・)
B列には下記の手順にしたがって数式を入力します。
C列にはリンクしたい先の名前を記載します。(例 C2:Bさん、C3:Cさん、・・・)
こちらで試したときのデータの配置を添付しました。(そちらのデータの配置は把握しておりません)

No.2の回答で、うまくいかなかった理由は、数式のシート名の部分が『sheet』になっているためと思われます。そちらのファイ...続きを読む

Q【Excel】VLOOKUP検索値が複数あった場合、下の値を表示したい

D列のコードをA列の中で検索し、
B列の値をE列に表示したいのですが、
VLOOKUPを使用した場合、検索値の最初の行が表示されます。
同じコードの場合、一番下の行の値を表示するにはどうしたら良いでしょうか。

Aベストアンサー

添付画像の通りの並びが前提となってしまいますが、こんな感じでどうでしょう。

【E2セル】=INDEX(B:B,MATCH(D2,A:A,0)+COUNTIF(A:A,D2)-1)

QExcelで数値が入っているセルにおいてその数値を表示せず、代わりに任意の文字列を表示したいのですが

Excelで数値が入っているセルにおいてその数値を表示せず、代わりに任意の文字列を表示したいのですが何か方法はありますか?

あるセルに元の数値があってそれをベースに別のセルで計算を行っています。但しその元の数値を印刷時に見えなくし、代わりに任意の文字列を表示したいのです。

例えば社内でのみ閲覧可能な定価相当の数値があり、これにある掛け率で売価を計算しているとします。当然この売価は印刷時において見える必要があります。一方元の数値の入ったセル部分には実際には社内定価の数値が入っているのですがこれを表示するのではなく「オープン価格」として表示したいケースです。
いい方法はありますか?

Aベストアンサー

「セルの書式設定」-「ユーザ定義」で、”オープン価格” と定義してみては。

Qスマホiphoneで、マイクロソフトMicrosoftのexcelエクセル使ってます。 何千行も書い

スマホiphoneで、マイクロソフトMicrosoftのexcelエクセル使ってます。
何千行も書いていて、なんか意図せずに上の方触ってしまうと行の一番上にワープする事ありますよね?なんなんですか?この機能は?
意図的に上の方を押してもワープできません。でも一生懸命書き込んでる最中に意図せずに上の方?あるいはなんか画面のどっかをタッチした事により、一番上の行にジャンプというかワープしてるんですか?
どういう原理でなってるんです?そしてどうやったらこれやめてくれます?邪魔で仕方ないんですよ。元の行に戻すのに大変なんだから。

Aベストアンサー

あなたが意図したかどうかに関係なく、画面の一番上のキャリア名やバッテリーの状況が表示されているメニューバーをタップすれば、どのアプリでも表示されているページの一番上にスクロールします。これはシステム標準の挙動です。

そのばあいカーソルは移動してないので、編集を続けても問題ありませんし改行すれば新しいカーソル位置が表示されます。慌てて「意図しないタップ」を連発しなければですが。

QExcel データ抽出 日付 1900/1/0 1月0日

以前にどなたかが、質問の回答としての関数式をそのまま使っていますが一つだけ問題があります。
詳しい方よろしくお願いします。
Sheet1に年間データがあります。そこからSheet2へE1セルで月を指定して月単位でデータを抽出しているのですが
1月だけ抽出データの最後に、1900/1/0をひろってしまいます。書式を変えても1月0日をひろいます。他の月は空白を返してくれるのですが、1月だけは、書式コピー分すべて1900/1/0を返してきます。文字列や数値は大丈夫です。日付だけです。対処法お願いします。
なんとなくしか理解出来ていない、わたしですいません( ノД`)シクシク…

Sheet1 抽出作業列 F列  
=IF(OR(Sheet2!E$1="",MONTH(A2)<>Sheet2!E$1),"",ROW())

Sheet2 抽出列 A~E列 A列日付
=IF(COUNT(Sheet1!$F:$F)<ROW(E1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$F:$F,ROW(E1))))
よろしくお願いします。

以前にどなたかが、質問の回答としての関数式をそのまま使っていますが一つだけ問題があります。
詳しい方よろしくお願いします。
Sheet1に年間データがあります。そこからSheet2へE1セルで月を指定して月単位でデータを抽出しているのですが
1月だけ抽出データの最後に、1900/1/0をひろってしまいます。書式を変えても1月0日をひろいます。他の月は空白を返してくれるのですが、1月だけは、書式コピー分すべて1900/1/0を返してきます。文字列や数値は大丈夫です。日付だけです。対処法お願いします。
なんと...続きを読む

Aベストアンサー

こんにちは

>1900/1/0をひろってしまいます
実際にそのようなデータがあるのなら、関数の機能としては間違いではないと思いますが、多分、「空白」セルが抽出されていて、結果的にそのような表示になっているのではないかと推測します。

セルの位置関係や内容(意味)がご質問文だけではよくわからないので、半分は想像ですが・・・
>Sheet1 抽出作業列 F列  
>=IF(OR(Sheet2!E$1="",MONTH(A2)<>Sheet2!E$1),"",ROW())
A列に対象とする日付が並んでいて、その範囲内に空白セルが混在しているものと推測します。
(1月を抽出する際に、空白セルの行のF列に抽出用の行番号が表示されているのではないでしょうか?)

対策として、A列が空白の場合はピックアップしないように、式内のORに条件を追加すればよいのではないかと思います。
具体的には
 =IF(OR(Sheet2!E$1="",A2="",MONTH(A2)<>Sheet2!E$1),"",ROW())
といった感じ。

(半分は想像ですので、当たるも八卦です。悪しからず)

こんにちは

>1900/1/0をひろってしまいます
実際にそのようなデータがあるのなら、関数の機能としては間違いではないと思いますが、多分、「空白」セルが抽出されていて、結果的にそのような表示になっているのではないかと推測します。

セルの位置関係や内容(意味)がご質問文だけではよくわからないので、半分は想像ですが・・・
>Sheet1 抽出作業列 F列  
>=IF(OR(Sheet2!E$1="",MONTH(A2)<>Sheet2!E$1),"",ROW())
A列に対象とする日付が並んでいて、その範囲内に空白セルが混在しているものと推測し...続きを読む

QINDIRECT関数の代替方法は?

先に本スレッドで下記数式を教わり問題を解決することが出来ました。
  =SUM(INDIRECT("E"&MATCH("AAA",A:A,0)&":"&"E"&MATCH("AAA",C:C,0)))
ただ、このINDIRECT関数により、ブックに変更がなくても終了時にブックの保存の要否が尋ねられます。
これを回避するためにINDIRECT関数の使用を止めたいのですが、その方法をお教えいただきたくお願いします。

Aベストアンサー

ちょっと気になったので一言だけ。
別の人がこのシートを使って試算をしたとします。保存しなければいいやと思ってバッテンをクリックしたら「保存しますか」のメッセージが出ずに、いきなり保存されてしまいました。ってことのなりませんか。
ここは作業列を作ってシンプルな式で対応した方が安全な気がします。

Q何故このようなプログラムだとエクセルに書き込めないのか教えてください。

何故このようなプログラムだとエクセルに書き込めないのか教えてください。

Aベストアンサー

私もPythonは研究を始めたばかりですが、まさかopenpyxlとかのExcel操作ライブラリがインストールされてないなんてオチはないですよね?

あとsheet1.write(str… ってなってますが、ここはセル番地の指定だからstrでは文字列になっちゃうのでまずいと思います。変数countは数値なんだから、そのまま sheet1.write(count, 0 ,str(inputvale)) でいけるのでは?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング