Excelの表の中のある1列に、
① 文字のみ(例:遅・早・浦・特・欠などの1文字)
② 数字と文字の組み合わせ(例:0.1欠・0.5欠 など小数点第1位までの数字と欠の連結のみ)
③ 数字(0.5 ・1のみ)
④ 空白のセル
①~④のどれかが入っています。
この列中にある、「欠」のついたものだけを足し算したいのですが
計算式を教えてください。
文字のみの「欠」は数字の1でカウントします。
上の内容で言えば答えは0.1欠+0.5欠+欠=1.6です。
そして答えには欠の文字をとって表示したいです。
No.9
- 回答日時:
>なるほど、配列数式ってこうやって使えるのですね!
とのことなので、配列数式に関することは、排除します。
また、合計も分かると思うので排除
=(0+TEXT(SUBSTITUTE(A1,"欠",0),"0.0;;1;!0"))-SUM(A1)
数式の内側から、SUBSTITUTE関数で、"欠"を0に置き換える
(1) 文字のみ(例:遅・早・浦・特・欠などの1文字)
パターン(1)「欠」のみ「0」の数字に置き換わる
パターン(2)その他の文字列は、そのまま
(2) 数字と文字の組み合わせ(例:0.1欠・0.5欠 など小数点第1位までの数字と欠の連結のみ)
パターン(3) 欠が外れて 数字(0.1,0.5 など)となる
(3) 数字(0.5 ・1のみ)
パターン(3) 数字(0.1,0.5 など)となる
(4) 空白のセル
パターン(4) 空白の文字列 "" となる
まず、上記4パターンに分類される。
次に、TEXT関数、数字と思われるものは数値として扱われる。戻り値は数字(文字列)
"0.0;;1;!0"
正;負;0;文字列 であることから
パターン(3)において、正の場合は 、"0.0"なので小数点第一位まで返す。
(ただし、負の場合はないと考え、定義していない。)
パターン(1) 0の場合、「1」の数字を返す
パターン(2)(4)の場合、文字列なので「0」の数字を返す。
これですべて数字を返したので、0+ つまり、0を足す計算をさせて数値化する。
ただし、
(3) 数字(0.5 ・1のみ)
の場合も、合計の対象となってしまうため、あとで数値で入力してあるもののみ引く。
合計の意味もあるが、文字列は計算対象としない(エラーにしない)意味も持つ。
聞かれれば答えるつもりではいたが、文章説明は意外とめんどいなぁ(^_^;
No.7
- 回答日時:
> でも、標準の文字がこの式には必要であることはわかりました。
必要ではないです。条件があいまいなので大事を打っただけで。
「0.0」でも多分問題ないし マイナスの値は考慮しなくてもいい
のかもしれません。
> ③を省く方法も知りたいですね。
それをどう扱いたいのかが不明なので無視しました。省きたけれ
ば SUMの結果を引くだけです。
数式の意味はいまだわかりませんが、③を省く考え方は
わかりました。
教えてもらえば簡単ですが、自分では考えられなかったです。
ありがとうございました。
No.6
- 回答日時:
No.2の回答者です。
補足されて気が付きました。
配列数式の一部に記載漏れがありました。
正しくは、こちら↓になります。
=SUM(IF(RIGHT(列範囲,1)="欠",IF(列範囲="欠",1,LEFT(列範囲,LEN(列範囲)-1)*1),0))
再度、数式バー上で[ Ctrl+Shift+Enter ]キーを押し配列数式にします。
LEN関数の部分で修正することを忘れていました。
ちなみに、No.4の回答にある式は③を無視することを考慮していませんね。
私も勉強になる式でしたが、③を省く方法も知りたいですね。
TEXT関数と表示形式と感嘆符
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
http://www.eurus.dti.ne.jp/yoneyama/Excel/user_s …
http://www.eurus.dti.ne.jp/yoneyama/Excel/dic/di …
No.5
- 回答日時:
> 式の中の標準とは何でしょうか。
表示形式の「G/標準」を省略しただけのものです。
というかそこだけ分かってどうするのでしょう。
ん~、表示形式の標準はなんとなく意味はわかるのですが
式の中に入ると意味がわからないです。
でも、標準の文字がこの式には必要であることはわかりました。
これを深入りしても頭こんがらがるようなのでやめときます(^_^;)
教えていただきありがとうございました。
No.4
- 回答日時:
#1です。
表の悪さを数式でカバーする癖を付けるとろくなことがないと思います。
作業計算を嫌がるのもあまりいい考えではないように思います。
=SUMPRODUCT(TEXT(SUBSTITUTE(A1:A10,"欠",0),"標準;-標準;!1;!0")-0)
No.3
- 回答日時:
No.2の回答者です。
配列数式を使えば、No.2での回答にある式を応用できます。
こちら↓の「列範囲」は計算したい範囲をして下さい。
=SUM(IF(RIGHT(列範囲,1)="欠",IF(列範囲="欠",1,LEFT(列範囲,LEN(A1)-1)*1),0))
数式バー上で[ Ctrl+Shift+Enter ]キーを押すと、配列数式になります。
http://excel-magic.com/post-32/
http://www.office-qa.com/Excel/ex69.htm
なるほど、配列数式ってこうやって使えるのですね!
いまいち使い方がわからなかったのですが
勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 式で与えられたセルの値と固定の文字列を一つのセルに表示 2 2022/12/28 11:02
- Excel(エクセル) exel 漢字・英数字混在セルの入力規則 5 2022/04/03 11:08
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/07/08 13:46
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SUMIFとCOUNTIFを合わせたよう...
-
ある一定時間を超えた場合の超...
-
エクセルでの複数条件下での標...
-
エクセルで年月の合計の関数を...
-
エクセルにて「週」から日付を...
-
隣のセルに入力したら自動的に...
-
EXCEL 経過年数の平均を求めた...
-
excelでの文字を隠す方法
-
Excel2007での条件付き書式につ...
-
Excelで1ヶ月間の勤務時間の計算
-
Excel:月またぎを含む日数の差...
-
【Excel2003で条件付き書式3つ...
-
エクセルで「ぶら下げ」書式を...
-
VBAで条件付き書式を設定
-
Excelの表以外が暗い?
-
エクセル関数で同じ日付の合計...
-
【スプレッドシート】指定の日...
-
vbaで「/」を削除したい
-
エクセル2003 MONTH関数で
-
複数連続した列幅や行高を一発...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIFとCOUNTIFを合わせたよう...
-
エクセルでの複数条件下での標...
-
【スプレッドシート】指定の日...
-
ある一定時間を超えた場合の超...
-
エクセルで年月の合計の関数を...
-
EXCEL 経過年数の平均を求めた...
-
Excelの表以外が暗い?
-
エクセルで「ぶら下げ」書式を...
-
エクセルにて「週」から日付を...
-
隣のセルに入力したら自動的に...
-
EXCEL 年月表示をするVBAを教...
-
エクセルで、一つのセルに二つ...
-
Excel:月またぎを含む日数の差...
-
エクセルで角度の計算できますか?
-
エクセル シフト表 6連続勤...
-
Excelで1ヶ月間の勤務時間の計算
-
ある数値から始まるものをカウ...
-
エクセル くじ引きの口数が別々...
-
vbaで「/」を削除したい
-
excelでの文字を隠す方法
おすすめ情報
式の中の標準とは何でしょうか。
教えていただけますか。
enunokokoroさん
計算式ためしてみました。
添付の表のA1セルが0.1欠の時は出来たのですが、A1のセルを空白にしたり
1を入力したりすると計算式がうまくいきませんでした。
何故だかわかりますか。