[[20211123210102]] 『IF関数の複数条件指定』(れん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『IF関数の複数条件指定』(れん)

A4セルのリスト化された項目を選んだ際、税込価格かから消費税分を求めたいのですが、どうすればよいでしょうか。

A1セル
税込価格

A2セル【=A1-A3】
税抜価格

A3セル【=IF(A4="非課税",A4="不課税"),0,IF(OR(A4="8%",A4="10%",A4),ROUDDOWN(A1-(A1/1.08),0,),ROUNDOWN(A1-(A1/1.1),0)))】
消費税

A4セル(リスト化)
8%
10%
非課税

これではうまくいきませんでした。
どうすればよいでしょう。
お力添えください。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 税率が文字型になっているのが気になりますが、
 取敢えず、こうですかね。

 A3セル =IF(OR(A4="8%",A4="10%"),ROUNDDOWN(A1-A1/(1+A4),0),0)

(半平太) 2021/11/23(火) 23:18


 これは、8%( 軽減対象 )、10%、消費税の課税対象( 非課税または、不課税 )を選択でと言うことでしょうか?

 A列だけが計算対象なら
 A3=IF(OR(A1="非課税",A1="不課 税",),ROUNDDOWN(SUM(A1*8)/108,0),IF(A4="10%",B1/10,IF(A4="8%",ROUNDDOWN(SUM(A1*8)/108,0),0)))
 か
 A3=IF(ISNUMBER(A4)*1,ROUNDDOWN(SUM(A1*8)/108,0),IF(A4="10%",A1/10,IF(A4="8%",ROUNDDOWN(SUM(A1*8)/108,0),0)))

 ■確認表

    |[A]        |[B]|[C]|[D]   |[E]  |[F]  |[G]   
 [1]|税込価格   |100|100|   100|1,000|1,000| 1,000
 [2]|税抜価格   | 93| 90|   100|  926|  900| 1,000
 [3]|消費税     |  7| 10|     0|   74|  100|     0
 [4]|課税(対象)|8% |10%|非課税|8%   |10%  |非課税

 B3=IF(OR(B1="非課税",B1="不課税",),ROUNDDOWN(SUM(B1*8)/108,0),IF(B4="10%",B1/10,IF(B4="8%",ROUNDDOWN(SUM(B1*8)/108,0),0)))
 右にコピーしてください

 これでどうでしょうか?

(あみな) 2021/11/24(水) 00:34


 訂正です。昨夜の、提案は嘘です。寝てました…すいません。(_ _。)		
 下記で...どうでしょうか?		

 消費税		
 A3=IF(A4="10%",A1/10,IF(A4="8%",ROUNDDOWN(SUM(A1*8)/108,0),0))		

 税抜価格		
 A2=IF(A4="10%",SUM(A1-A1/10),IF(A4="8%",SUM(A1-ROUNDDOWN(SUM(A1*8)/108,0)),SUM(A1-A1/10)))		

(あみな) 2021/11/24(水) 07:10


 再訂正です。頭悪w ^^; 

 消費税
 A3=IF(A4="10%",A1*10/110,IF(A4="8%",ROUNDDOWN(SUM(A1*8)/108,0),0))
(あみな) 2021/11/24(水) 07:41

 =IFERROR(A1/HLOOKUP(A4,{"10%","8%";1.1,1.08},2,FALSE),)

A4を書式設定で文字列にしていた場合の一例です
(きまぐれおじさん) 2021/11/24(水) 08:29


 =IFERROR(ROUNDDOWN(A1/HLOOKUP(A4,{"10%","8%";1.1,1.08},2,FALSE),0),)

さきほどの式はROUNDDOWNが抜けていたので訂正。
(きまぐれおじさん) 2021/11/24(水) 08:33


たくさんのご提案ありがとうございます。
頂いた提案すべて試してみませしたうまくいきませんでした。

   |  A  |  B  |  C  |  D  |

「1」 税込金額  税抜金額  消費税   税率

「2」  1000    900    100    10%
      ↑                   ↑
    金額入力             リスト化された税率を選択
                     |8%
                     |10%
                     |非課税
                     |不課税

B2には =A2-C2 を入れてます。
C2には ==IF(OR(D2="非課税",D2="不課税"),0,IF(OR(D2="8%",D2="10%",D4),ROUNDDOWN(A2-(A2/1.08),0),ROUNDDOWN(A2-(A2/1.1),0)))

これではうまくいきませんでした。
なんども質問してしまってすみませんが、お力添えお願いいたします。
(れん) 2021/11/24(水) 18:09


 10%は、書式の設定が文字列にしてあるのでしょうか?
(あみな) 2021/11/24(水) 20:02

 >A4セル(リスト化) 

    |[A]          
 [3]|         
 [4]|8%
    |10%
    |非課税
 [5]|

 のように A4 セルに改行されて入力されているということですか。
 この中からそれぞれ選択しようとしているのですか。
 とすれば、抽出するには一工夫必要になります。

 >リスト化された税率を選択
 プルダウンリストにして選択するようにしてはどうですか。
 その分式も簡素化できるのでは。
 
(PP) 2021/11/24(水) 20:11

 因みに...自分も含めて、半平太さんのも、きまぐれおじさんのも全部試してみましたが
 税込金額が大きくなると、計算が方法によって1円単位のズレが出ますかね?^^;

 あと気になるのがご自身が適応されたいと思う方法なのですが...私は財務省の
 Webページにある基本原則を基準にしてみたのですが...どう出すのが?適当なのかまでは
 良く理解できません。

 参考URL : 総額表示に関する主な質問

 https://www.mof.go.jp/tax_policy/summary/consumption/a_001.htm#contents

 ↑上の(Q9) 現在の「税抜価格」を基に「税込価格」を設定する場合に円未満の端数が生じることがありますが、どのように処理して値付けを行えば良いのですか。

 を参考に私はしました。

 https://www.mof.go.jp/tax_policy/summary/consumption/a_001.htm#9

 この内容に詳しい方の目に留まると良いのですが...
(あみな) 2021/11/24(水) 20:23

早い返信ありがとうございます。

 10%は、書式の設定が文字列にしてあるのでしょうか?
(あみな) 2021/11/24(水) 20:02
↓
パーセンテージにしてあります。

 >A4セル(リスト化) 
    |[A]          
 [3]|         
 [4]|8%
    |10%
    |非課税
 [5]|
 のように A4 セルに改行されて入力されているということですか。
 この中からそれぞれ選択しようとしているのですか。
 とすれば、抽出するには一工夫必要になります。
 >リスト化された税率を選択
 プルダウンリストにして選択するようにしてはどうですか。
 その分式も簡素化できるのでは。
 
(PP) 2021/11/24(水) 20:11
↓
プルダウンリストにしております。

(れん) 2021/11/24(水) 20:40


 いや〜文字列か数値かって、またはシリアル値とか…エクセルってややこしいですよね。><
 でも、"8%"と"10%"がセルの書式設定でパーセントだと、私の提案式では無理だと思います。
 すいません(_ _。)... 一度私も、プルダウンリストにして挑戦してみます。

 ★参考例1.

 セルの内容が指定した文字列と「一致」したら○で判定、
 それ以外の場合には「×」と表示させる

 A2〜A6は、文字列です。
 A7〜A8は、文字列ではありません。

    |[A]         |[B] |[C]                                             
 [1]|文字列さん?|判定|式                                              
 [2]|非課税      |○  |B2セル=IF(OR(A2="非課税",A2="不課税"),"○","×")
 [3]|不課税      |○  |B3セル=IF(OR(A3="非課税",A3="不課税"),"○","×")
 [4]|消費税      |×  |B4セル=IF(OR(A4="非課税",A4="不課税"),"○","×")
 [5]|8%          |○  |B5=IF(OR(A5="8%",A5="10%"),"○","×")           
 [6]|10%         |○  |B6=IF(OR(A5="8%",A6="10%"),"○","×")           
 [7]|8%          |×  |B7=IF(OR(A5="8%",A7="10%"),"○","×")           
 [8]|10%         |×  |B8=IF(OR(A5="8%",A8="10%"),"○","×")           

 参考URL
 セルの内容が指定した文字列と「一致する」
 https://www.excelspeedup.com/ifmojiretsu/

 ★参考例2.

    |[A]     |[B]     |[C]   |[D]   |[E]     |[F]|[G]                                     |[H]|[I]|[J]|[K]                        
 [1]|税込価格|税抜価格|消費税|非課税|数値判定|   |                                        |   |   |   |                           
 [2]|   1,000|     926|    74|10%   |TRUE    |   |(D2)の値がパーセンテージの場合          |   |   |   |E2セルの入力式=ISNUMBER(D2)
 [3]|   1,000|     926|    74|10%   |FALSE   |   |(D3)こちらのパーセント表示は文字列です。|   |   |   |E2セルの入力式=ISNUMBER(D3)
 [4]|   1,000|     926|    74|非課税|FALSE   |   |(D4)非課税は、文字列です。              |   |   |   |E2セルの入力式=ISNUMBER(D4)

 参考URL
 ISNUMBER 関数はセルの値が数値か判定します。数値なら TRUE を返します。
 https://www.tipsfound.com/excel/04isnumber

(あみな) 2021/11/24(水) 22:10


 >パーセンテージにしてあります。

 税率が小数点の値なら、

 A3セル =LOOKUP(-A1,(ROUNDDOWN(A1-A1/(1+N(A4)),0)+{0,1,2}-A1)*(1+N(A4)),ROUNDDOWN(A1-A1/(1+N(A4)),0)+{0,1,2})

(半平太) 2021/11/24(水) 22:59


 >プルダウンリストにしております。
 コメントありがとうございます。

 >=IF(OR(D2="非課税",D2="不課税"),0,IF(OR(D2="8%",D2="10%",D4),ROUNDDOWN(A2- (A2/1.08),0),ROUNDDOWN(A2-(A2/1.1),0)))  
 >これではうまくいきませんでした。
 検証してみました。
 税抜金額 910、消費税 90 が計算結果です。
 8% に切り替えても結果は変わらずです。
 これがうまくいかない理由だったのでしょうか。
 二つ目の IF を見てみましょう。
 OR(D2="8%",D2="10%",D4)ではどちらを選択しても 常に True になるので
 ROUNDDOWN(A2-(A2/1.08),0) で計算されるので結果が変わらない。
 ではどうするかというと二つ目の IF を 8% 、10% 用に分けるだけです。
 改善策がこれです。
 C2=IF(OR(D2="非課税",D2="不課税"),0,IF(D2=8%,ROUNDDOWN(A2-(A2/1.08),0),ROUNDDOWN(A2-(A2/1.1),0)))
 計算結果です。
 税抜金額 910、消費税 90 → 10%
 税抜金額 926、消費税 74 →  8% 

 希望の結果とならなかったら破棄してください。
 何がうまくいかなかったのか説明された方がいいですよ。

(PP) 2021/11/24(水) 23:36


 あみなさん
 ★参考例1.の式をみて疑問を持ったものですから。

 ひとつでも条件を満たすときは TRUE を返すので○じゃないでしょうか。
 ここでは A5="8%" がこれにあたりますよね。

 [7]|8%          |×  |B7=IF(OR(A5="8%",A7="10%"),"○","×")           
 [8]|10%         |×  |B8=IF(OR(A5="8%",A8="10%"),"○","×")  

 A5="8%" ではなくそれぞれ A7="8%" A8="8%" ということでしょうか。
 これだと×になりますが。

    |[A] |[B]|[C]  |[D]                  
 [5]|8%  |  |TRUE |=OR(A5="8%",A5="10%")
 [6]|10% |  |TRUE |=OR(A5="8%",A6="10%")
 [7]|  8%|  |FALSE|=OR(A7="8%",A7="10%")
 [8]| 10%|  |FALSE|=OR(A8="8%",A8="10%")

(PP) 2021/11/25(木) 11:27


 (PP)さんありがとうございます。					

 ↓これのA5="8%"の参照するを変更するのを、忘れました。すいません〜^^;					

    |[A]         |[B] |[C]                                             					
 [1]|文字列さん?|判定|式                                              					
 [5]|8%          |○  |B5=IF(OR(A5="8%",A5="10%"),"○","×")           					
 [6]|10%         |○  |B6=IF(OR(A5="8%",A6="10%"),"○","×")           					
 [7]|8%          |×  |B7=IF(OR(A5="8%",A7="10%"),"○","×")           					
 [8]|10%         |×  |B8=IF(OR(A5="8%",A8="10%"),"○","×")           					

 ↓本人は、こんしてUPしたつもりでしたんですww					

 [5]|8%          |○  |B5=IF(OR(A5="8%",A5="10%"),"○","×")           					
 [6]|10%         |○  |B6=IF(OR(A6="8%",A6="10%"),"○","×")           					
 [7]|8%          |×  |B7=IF(OR(A7="8%",A7="10%"),"○","×")           					
 [8]|10%         |×  |B8=IF(OR(A8="8%",A8="10%"),"○","×")           					

 で、					

 ↓ここもっと詳しく記載すればよかったですね^^;					

 A2〜A6は、文字列です。					
 A7〜A8は、文字列ではありません。					

 セルの書式設定で、					

 A2〜A6は、文字列です。は文字列にして					
 A7〜A8は、文字列ではありません。はパーセントにしてあると					

 です。	

 ちゃんと、みなおしてUPします。	<(_ _)>			

(あみな) 2021/11/25(木) 13:08


たくさんのご返信ありがとうございます。
皆様のご返信すべて参考になりました。
本当にありがとうございます。

PPさんの
C2=IF(OR(D2="非課税",D2="不課税"),0,IF(D2=8%,ROUNDDOWN(A2-(A2/1.08),0),ROUNDDOWN(A2-(A2/1.1),0)))
この式で思っている通りにいきましたが、100円で計算した時8%が7円、10%が9円になってしまいました。
ROUNDUPだと110円にしたとき、消費税額が違うことになりました。

解決方法はありますでしょうか?

(れん) 2021/11/27(土) 21:37


 >この式で思っている通りにいきましたが、

 その式でいいならですが、
 これでもいいと思うんですけども。→ =ROUNDDOWN(A2-A2/(1+N(D2)),0)

 まぁ、それは大勢に何の影響もない話ですが、
 それで得られたこの結果の何が問題なんですか?(何の解決方法が知りたいのか伝わってこないです)
         ↓
 行  ____A____  ____B____  ___C___  ___D___
  1  税込価格   税抜価格   消費税    率     
  2     100         93        7       8%
  3     100         91        9      10%
  4     110        102        8       8%
  5     110        100       10      10%
  6     110        110        0    不課税 

(半平太) 2021/11/28(日) 12:49


ご返信ありがとうございます。

税率8%、税込価格100円の場合の消費税は8円なのですが、7円になってしまいます。
この解決方法が知りたいです。
(れん) 2021/11/29(月) 16:33


 回答ではありませんが気になったので
 税込価格100円の税率8%が8円と言うことは消費税の端数は切り上げと言うことでしょうか
 ならROUNDDOWNはおかしい様な気がします検証してませんが
 普通は四捨五入か切り捨てだと思うので7円になると思いますが
(なるへそ) 2021/11/29(月) 17:01

 消費税計算ツール				
 https://www.shouhizei.info/?p1=93&r=8&t=zeikomi				

 消費税 - 高精度計算サイト - Keisan				
 https://keisan.casio.jp/exec/system/1346316660				

 補足 : 小数点以下端数処理が一般的でしょうか ?				

 ◆93円(税抜き)× 1.08(消費税8%)				

 93	×	1.08	=	100.44 

 ◆100円(税抜き)× 1.08(消費税8%)				

 100	×	1.08	=	108.00

 [ 参考URL ]

 消費税の端数処理は切り捨て?切り上げ?消費税改正後の対応とは				
 https://www.obc.co.jp/360/list/post74				

 消費税の端数処理は切上げ?切捨て?ポイントを解説				
 https://pca.jp/p-tips/articles/fl200703.html				

(あみな) 2021/11/29(月) 17:23


 >税率8%、税込価格100円の場合の消費税は8円なのですが、7円になってしまいます。

  そう言う理屈でしたか・・、なら、これが間違いですね。
                               ↓
 「税率8%、税込価格100円の場合の消費税は8円」

 税込の100円に8%掛けてはいけません。
 本体価格に8%を掛ける必要があります。
 (93円)

 つまり、消費税は、93 x 8% = 7.44 → 7円が正しい。

 ※そもそも税込価格から逆算しようとする所にちょっとした無理があるんです。
  本来の姿は、本体価格が先にあり、それに8%掛け、切り捨てて消費税を求める。
   それなら何も問題が起こらない。

  しかし、先に税込価格を決めた場合、
   本体価格と消費税は辻褄あわせで決めなければならない。
  切り上げるか、切り捨てるかは、ケースバイケースとなる。

(半平太) 2021/11/29(月) 17:35


 >A1-(A1/1.08)
 れんさんが質問した時にご自分で式を書いているのに・・・
 この計算から端数をどの様に処理するかで良かったのでは
 それでも金額によっては半平太さんが言っているように
 辻褄合わせないといけない時もあるかもしれませんね
(なるへそ) 2021/11/30(火) 09:37

 例えば、税込価格が10円で、税率10%の場合
   本体価格を 9円、消費税を1円に分けると切り上げざるを得ない。何故なら9*10%は0.9円なので。

 試しに消費税を切り捨てたら・・
   本体価格が10円、消費税が0円になり、10*10%は丸め方式に関係なく1円なので、0円にしたら脱税となる。

 切り上げるべき税込価格を108,110で割った「余り」を調べてみると
  8%:13,26,40,53,67,80,94,107
 10%:10,21,32,43,54,65,76,87,98,109

 なので、そのケースだけ切り上げ、つまり1加算でどうか?
                        ↓
 C2セル =IF(N(D2),ROUNDDOWN(A2-A2/(1+D2),0)+ISNUMBER(MATCH(MOD(A2,IF(D2=8%,108,110)),IF(D2=8%,{13,26,40,53,67,80,94,107},{10,21,32,43,54,65,76,87,98,109}),0)),0)

(半平太) 2021/11/30(火) 13:45 (14:21 説明文訂正)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.