これからの季節に親子でハイキング! >>

例年この時期に必ず苦労して困っています。質問させてください…
毎年毎年、販売個数を出すのに列を削除する方がいて、ミスが起きたり作り直しとか大変でとても困ってます。

列を削除してもSUMproductの関数がつかいたいのですが、

=SUMPRODUCT($C$3:(ADDRESS(3,(MATCH("枚数"),0)-1),1),C4:(ADDRESS(3,(MATCH("枚数"),0)-1),4)))

みたいな感じで考えて見たのですがエラーメッセージでお手上げです…

どうにか個数と書いたの手前の行までの掛け算をする数式ができないでしょうか

よろしくお願いします!

質問者からの補足コメント

  • すみません、個数と書いたつもりが枚数になってました。
    そしてカッコの数はおかしいかもしれないです。

      補足日時:2019/04/20 08:44
  • へこむわー

    色々不足があって申し訳ないです。
    関数に詳しいわけでもなく初心者なので、
    エクセルヘルプを参照しながら何とか考えた次第です。

    そしてMATCHの("枚数",$C$3:$Z$3,0)と書いてあったはずが…何故かこんな風に変わっていました。申し訳ございません

      補足日時:2019/04/20 12:47
  • 色々不足があって申し訳ないです。
    もちろん関数に詳しいわけでもなく初心者なので、
    エクセルヘルプを参照しながら何とか考えた次第です。

    そしてMATCHの("枚数",$C$3:$Z$3,0)と書いてあったはずが…移動中に打ってたら何故こんなことに…。申し訳ございません。
    offset関数も考えたのですが、難しくて"枚数"の位置と一致させれないかな…そしてその一つ前の列まで金額が入っているのでその列の位置をaddressで出して
    SUM productにの配列の指定に組み込めないかと思っていた次第です…

    No.5の回答に寄せられた補足コメントです。 補足日時:2019/04/20 12:53
  • addressとMATCHを使ったところでは予定通りの$Y$3とY4のアドレスをゲット出来ていたのですが…
    そうなのです。
    SUM productがおかしいです

    No.4の回答に寄せられた補足コメントです。 補足日時:2019/04/20 13:15
  • =SUMPRODUCT($C$3:(ADDRESS(3,(MATCH("枚数",$C$3:$Z$3,0)-1),1),C4:(ADDRESS(4,(MATCH("枚数",C4:Z4,0)-1),4)))

    と元々つくってSUMproductの配列の指定に失敗しています…。
    C3からの3行目に金額が入っておりそのラストが枚数と書いてあるので、
    その一つ前のセルのアドレスを指定したらいいのでは?と思ってやって見たのです。

    そして、シートの列保護ですが、目安を印刷したい理由で保護を解除して列を減らして印刷とかもあったので
    それで解決できていない現状です。

    質問する時にエラーが出てしまい、直しているうちにおかしな事をしていたようです。
    申し訳ございません。

      補足日時:2019/04/20 13:24

A 回答 (11件中1~10件)

又 訂正です、



=SUMPRODUCT(INDIRECT("C3:"&ADDRESS(3,MATCH("枚数",INDIRECT("C3:Z3"),0)+2)))

何度も 申し訳ない、
こっちですね。


そして応用編が、
=SUMPRODUCT(INDIRECT("C3:"&ADDRESS(3,IFERROR(MATCH("枚数",INDIRECT("C3:Z3"),0),COUNTA(INDIRECT("C3:Z3")))+2)))

此方は、
もし "枚数"記載列をも、
削除してしまっても、

まあ 取り敢えずは、
エラーには ならない、
式です。


確認くださいね。


後、
解説を ご所望に、
なられる場合は、

そう、
お申し付けくださいね。


追記、
いゃ〜、
楽しませて 頂きました、

久々に、
頭が 回る、
噛み応えの ある、
課題でした、

いい課題を 有り難うです。
    • good
    • 0
この回答へのお礼

感動的です…!後で質問文を見直してみて何がおかしというと質問文が一番おかしいという失礼な事をしてしまった中、
たくさんの答えを出していただきありがとうございます!!

出来ました!
indirectの関数の使い方、全く理解してなかったです。
本当にありがとうございました!
とりあえず出来ましたが、応用編も研究してみようと思います!

お礼日時:2019/04/20 14:51

しかし 此のままだと、



C列か、Z列の、
削除に 伴い、

エラーが 出たり、
検索範囲が 縮まったり、
する、
と いう事ですね。


ならば、
=SUMPRODUCT(INDIRECT("C3:"&ADDRESS(MATCH("枚数",INDIRECT("C3:Z3"),0),3)))
ですかね?


確認くださいね。
    • good
    • 0

2019/04/20 13:24 の補足に対する返答です。



>シートの列保護ですが、目安を印刷したい理由で保護を解除して列を減らして印刷とかもあったので

(´・ω・`)
列を「削除」するのではなく「非表示」にすれば良いだけですよ。それ。
または印刷する場合は別のBookとして保存し直してから列を削除するようにルールを作る。

なんでそんな理由で責任を負う必要があるのか、自分には分からない。

関数やマクロが少しできるから対応してみようと思うのは悪いことではありません。
でもそこで考えて欲しい。
根本的に何が間違っているのか。そしてどうすれば解決できるかを。
    • good
    • 0

あ、ごめんなさい、


舗装→補足
済みません。
    • good
    • 0

舗装 頂いた、


内容を、
素直に 其のまま、
読めば、

=SUMPRODUCT(OFFSET(
$C$3,0,0,1,MATCH("枚数",$C$3:$Z$3,0)))
ごうですかな?
    • good
    • 0

こんにちは!



関数でどうしても列削除に対応したいのであれば、
INDIRECT関数を併用すればできそうですが、お示しの数式ではエラーになると思います。

具体的な配置がどのようになっていて、どのような処理をしたいのか?が判れば
少しはお役に立てるかも・・・m(_ _)m
    • good
    • 0

VBを 学ぶのと、


VBAを 学ぶのとでは、

意味合いが 全く、
違います、

機械語と 高級言語程の、
差が あるのですから。


そして、
VBAを 学ぶという事は、

シートを 知り尽くす、
と いう事であって、

質問者が 仰られる、
此は、
其の内の 基礎的な、
最たるもの。


故に、
ヤジ内容は 不当ですよ?


さて、
MATCH("枚数")
此が どうにも、
解せません、

此の部位で、
望み通りの 列位置を、
知り、
指定したいものと 思うのですが、

名前定義でも 無さそうですし、
構文構造からも 外れていますよね、


因みに 本筋なら、
MATCH構文は、
MATCH(検索指標値,検索範囲セルアドレス,0)
等々と 書きますよね?

又、
MAX(INDEX((検索指標値=検査範囲セルアドレス)*COLUMN(検査範囲セルアドレス),"")
等とも 書きますよね?


因みに 後者なら、
途中列を 削除しても、
エラーは でなかったと、
思いますが、

作成意図は、
どの様な ものだったのですか?


抑も、
アドレス構文でも、
まあ 良い訳ですが、

しかし、
二回 持ちいないと、
セル範囲指定が 出来ませんよね?

此を 例えば、
Offset構文等に すれば、

位置算定等を 除けば、
1構文で 済みますよね?


兎に角 此のままでは、
ご意図が 伝わってきませんので、

ご意図の 解説を、
お願い できますか?
この回答への補足あり
    • good
    • 0

式の中身を個別に確認してみては。


ADDRESS関数の行列指定は正しいのでしょうか?
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
MATDH関数の指定で列を取得できているのでしょうか?
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
SUMPRODUCT関数でのエラーの原因を探すほうが先だと思います。
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
この回答への補足あり
    • good
    • 0

列削除できないようにセルにロックをけければ良いんじゃぁ

    • good
    • 0

>毎年毎年、販売個数を出すのに列を削除する方がいて~



この改善が先決でしょ。

シートの保護で対策できる気がする。
「エクセルの関数について」の回答画像2
    • good
    • 0

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

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

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

QExcelです。 関数など、やり方を教えてください。 集会出来なくて困っています。

Excelです。
関数など、やり方を教えてください。
集会出来なくて困っています。

Aベストアンサー

あ、
済みません、
映像添付 忘れました。


お許しください。

Qエクセルでセルのデータがカタカナかどうか調べたい

セルA1の内容が、全角カタカナか半角カタカナか知りたいです。

エクセル関数又はマクロコマンドがあるはずだと信じて探していますが、見つかりません。TYPE関数では、セルの内容が数値か文字列かを調べられますが、その文字列がカタカナか英数字かなどを調べられません。ご存知の方はお教えください。

Aベストアンサー

元の 文字列が、
セルA6に あるとして、
セル内が 全て、
全角片仮名かは、
=SUMPRODUCT((CODE(MID($A$6,COLUMN(OFFSET($A$1,0,0,1,LEN($A$6))),1))=ROW($A$9506:$A$9590))+0)=LEN($A$6)

半角片仮名かは、
=SUMPRODUCT((CODE(MID($A$6,COLUMN(OFFSET($A$1,0,0,1,LEN($A$6))),1))=ROW($A$177:$A$211))+0)=LEN(A6)

で 判りますよ。

Qエクセルについて

自分では何をしてもお手上げなので詳しい方に教えていただきたいです。
画像の様な表(①)があったとして、表(②)の条件を満たす場所ごとに人数を数えたいです。表(②)は上から順に優先順位が高い順です。
しかしその時に条件があり、1つの条件に当てはまった人は他の条件には当てはめてはならないというものです。
例えば優先順位が最も高いA31の場所一はAさん、Hさん、Oさんの3人が当てはまります。
そうなると場所一の残りはVさん1人ということになり、次に優先順位が高いA32には当てはまらないのでA33に入って残りは0ということになります。

上記の例えのように集計するにはどうすれば良いでしょうか。毎日変動する何百とあるデータを集計しなければならないため、知恵をお貸しいただきたいです。

拙い文章で伝わりにくいかもしれませんが、回答よろしくお願いします。

Aベストアンサー

◆概要
I列~L列を作業列として、31~34行目の条件および重複防止から抽出します。
作業列に抽出した表からピボットテーブルを使って、②の表にする。
添付図参照です。データの配置も添付図のとおりです。

◆手順
1.I1~L1セルに条件の見出しを記入する。
2.I2セルに『=IF(AND(H2>=3,E2>=3),1,0)』を記入する。→31行目の条件
3.J2セルに『=IF(AND(G2>=2,E2>=3,I2=0),1,0)』を記入する。→32行目の条件と重複防止
4.K2セルに『=IF(AND(F2>=4,C2>=3,I2=0,J2=0),1,0)』を記入する。
5.L2セルに『=IF(AND(C2>=1,I2=0,J2=0,K2=0),1,0)』を記入する。
6.I2~L2を下方向にコピペする。
7.メニュー→挿入→ピボットテーブル とする。
8.データ範囲にB1~L27を選択して、OK。
9.『ピボットテーブルのフィールドリスト』のウインドウが表示される。
10.大きい箱にある『場所』『31』『32』『33』『34』にチェックを入れる。
11.行ラベルにある『場所』を列ラベルにドラッグして移動させる。
12.Σ値にある31~34をクリックして『値フィールドの設定』→『合計』に変更する。
13.ピボットテーブルで作った表を必要な場所にコピペして完成。


※当方が試したところ、手順13の表の『場所』(一~七)の並び順がずれました。
 同じことが起これば、必要に応じて並べ替えください。

※添付図のデータは、場所 一と二のみサンプルどおりに入力。三以降はでたらめです。

◆概要
I列~L列を作業列として、31~34行目の条件および重複防止から抽出します。
作業列に抽出した表からピボットテーブルを使って、②の表にする。
添付図参照です。データの配置も添付図のとおりです。

◆手順
1.I1~L1セルに条件の見出しを記入する。
2.I2セルに『=IF(AND(H2>=3,E2>=3),1,0)』を記入する。→31行目の条件
3.J2セルに『=IF(AND(G2>=2,E2>=3,I2=0),1,0)』を記入する。→32行目の条件と重複防止
4.K2セルに『=IF(AND(F2>=4,C2>=3,I2=0,J2=0),1,0)』を記入する。
5.L2セルに『=IF(AND(C2>=...続きを読む

Qエクセルでこんな事できますか?

添付エクセルのようにA列に任意の数字が歯抜けで入力したとき、その数字の入っているC列の同じ行(実際は、100行程ある)にだけ、数字の1を自動に入れたいのですが、、、詳しい方 教えてください。関数でも、マクロでも何でもかまいません。 よろしくお願いいたします。

Aベストアンサー

マクロならこうなります。

Sub TestSample1()
 With Range("A1", Cells(Rows.Count, 1).End(xlUp))
  .SpecialCells(xlCellTypeConstants, xlNumbers).Offset(, 2).Value = 1
 End With
End Sub

Q日付の作成方法を教えて下さい。

縦カレンダーを作りたく、色々検索して月初日を作ることは出来ました。
そこから、+1してカレンダーを作りたいのですが上手く出来なかった為、質問させていただきました。


コード
Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") + 1
Next i

End Sub

やりたいこととしては、一行飛ばしに日付を加算させていくなのですが、上のコードだと4行目だけ変わって後は変わりません。
どうすれば63行目まで変えることが出来るのでしょうか?
ご教授宜しくお願い致します。

縦カレンダーを作りたく、色々検索して月初日を作ることは出来ました。
そこから、+1してカレンダーを作りたいのですが上手く出来なかった為、質問させていただきました。


コード
Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") + 1
N...続きを読む

Aベストアンサー

Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") - 1 + i / 2
Next i

End Sub

Qエクセル リストと完全一致するセルに色をつける

シート1のA列とB列に
aaa ccc
bbb ggg
ccc kkk
ddd ooo
と言うリストがあって、A1〜A4はAチーム、B1〜B4まではBチームと名前を付けています
シート2にAチームのリスト4個が続いているものがあればセルを赤、Bチームのリスト4個が続いているものがあればセルを黄色に塗りたいです
AチームとBチームの中には同じ品番がある時もあります
条件付き書式で設定は出来るでしょうか?

Aベストアンサー

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル

 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4

 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5

 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

の4パターンについてそれぞれ調べれば良いだけ。

自分なら
 aaa-bbb-ccc-ddd
のようにシート1から文字列を作り、それが調べるセルで同じパターンになるかを調べます。
シート1はA5セルから、シート2はA11セルからデータが入力されているなら、

 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A11 & A12 & A13 & A14
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A12 & A13 & A14 & A15
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A13 & A14 & A15 & A16
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A14 & A15 & A16 & A17

という条件になる。
この4つのうちの一つでも条件を満たせばセルに赤色を付ければいい。
「Bチーム」についても同様にすればいいので、
この場合、8つの条件式を設定することになります。

面倒でもこの考え方ができていないと、ちょっと条件が変わっただけで対処できずに終わります。
冒頭で「並び順」について書きましたが、並び順がシート1のリストの通りでなくとも色を付けたい場合でも、この考え方は必要ということです。

・・・
ちなみに厄介なのが、どちらのチームにも「ccc」がいるというところかな。
これが無ければ違う方法でシンプルにできるんですけどねえ。

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付け...続きを読む

Q【関数】複数条件に応じてポイントをつけたい

お世話になっております。

条件によってポイント付与する数式を組みたいのですが
条件が複雑で、どのような関数を組めば良いか、関数の知識も乏しく頭を悩ませております。
詳しい方教えて頂けないでしょうか?

K列 担当者ID
L列 計画
M列 実績
N列 達成率
O列 達成額/未達額
P列 ポイント付与欄

上記のようなデータがあります。

下記条件で、O列「達成額/未達額」の降順にポイントを付与したいです。
その際、下記の条件でポイントを付与したいのです。

ポイント集計先
①黄色セル K5~K18:担当者ID
➁赤色セル K4:部門コード
※画像添付いたします。

ポイント付与条件別表
黄色セル E列:担当者ID ※上記①と紐づく
ピンクセル F列:担当者に紐づく主担当部門コード ※上記➁と紐づく
※補足へ画像添付いたします。

★条件★
・基本
O列
①「達成額/未達成額」が0以上なら降順に10Pからポイント付与
➁「達成額/未達成額」が0orマイナスならポイント付与せず
※ただし、マイナスでも実績があればポイント付与

上記、基本条件に加えて、下記条件も組み込みたいです。
①担当者ID+主担当部門コードが紐づけはO列に10PからポイントMAX付与
➁担当者ID+主担当部門コード以外だったら該当ポイントの1/2付与
かつ、「達成額/未達成額」が0orマイナスなら1/2のポイントの半分付与

何卒、よろしくお願いいたします。

お世話になっております。

条件によってポイント付与する数式を組みたいのですが
条件が複雑で、どのような関数を組めば良いか、関数の知識も乏しく頭を悩ませております。
詳しい方教えて頂けないでしょうか?

K列 担当者ID
L列 計画
M列 実績
N列 達成率
O列 達成額/未達額
P列 ポイント付与欄

上記のようなデータがあります。

下記条件で、O列「達成額/未達額」の降順にポイントを付与したいです。
その際、下記の条件でポイントを付与したいのです。

ポイント集計先
①黄色セル...続きを読む

Aベストアンサー

まず基本条件の方からいきます。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*RANK.AVG関数で”達成額/未達成額”の順にランキング(1~)をつけ、11から差し引く、という方法をとります
*”実績”がマイナスのものはランキング付けそのものから除外するので、IF関数で検索対象の配列を絞り込みます
(IF関数に配列を入れたら答えも配列で返してくれるので、その絞り込んだ配列に対してRANK.AVR関数を使います。)
*マイナスのポイントは排除したいので、MAX関数でゼロと比較して正の値のみを採択します

追加条件込みの方は、以下です。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0)*IF(VLOOKUP($K5,$E$3:$F$1000,2,FALSE)=$K$4,1,IF($O5>0,0.5,0.25)),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*担当IDから担当部門コードの検索にはVLOOK関数を使います。VLOOK関数が正常に動作するには、担当IDに漏れがない事と番号順に並んでいる事が必要ですので、これ前提で考えて下さい。
*追加条件に準じ、ポイントを1倍したり、0.5倍したり、0.25倍したり、しました。

まず基本条件の方からいきます。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*RANK.AVG関数で”達成額/未達成額”の順にランキング(1~)をつけ、11から差し引く、という方法をとります
*”実績”がマイナスのものはランキング付けそのものから除外するので、IF関数で検索対象の配列を絞り込みます
(IF関数に配列を入れたら答えも配列で返してくれるので、その絞り込んだ配列に対してRAN...続きを読む

Qエクセル ifの使い方を教えて

商品の受注入力をエクセルで管理したいのですが、商品には1商品1単価のものと、1商品5単価のものが存在します。商品・価格一覧は以下の通りです。実際の表は500行ほどあります。
(商品・価格一覧表)
code size P① P② P③ P④ P⑤
 1 S 20
 5 LL 1000 900 800 700 600

(受注枠)
code  数 size  -- P--  total
 1  5  S  20  *1  100
 5  3  LL  800  *2  2400

受注枠には、商品となるcode番号と 受注数量を入力すると一覧表からsizeと単価が引けるように作りました。
code5の商品は、注文する枚数に応じて、1枚なら1000円、2枚900円、3枚800円、4枚700円、5枚なら600円となるように設定したいと考えています。
受注枠のPの枠セル(*1)(*2)には、以下の式を作りました。

IF(K5="","",IF(J5<=3,VLOOKUP(J5,$B$4:$H$5,3),IF(AND(J5>=4,K5=1),VLOOKUP(J5,$B$4:$H$5,3),IF(AND(J5>=4,K5=2),VLOOKUP(J5,$B$4:$H$5,4),IF(AND(J5>=4,K5>=3),VLOOKUP(J5,$B$4:$H$5,5),IF(AND(J5>=4,K5>=5),VLOOKUP(J5,$B$4:$H$5,6),IF(AND(J5>=4,K5>=5),VLOOKUP(J5,$B$4:$H$5,7))))))))

code1の商品のように単価が1つのものは受注数がいくつでも対応しますが、code2の商品のように複数の単価を持つ商品は、上の式では3列目のP ③の800までしか対応してくれません。
受注枠の数量欄に 4 と入力しても5と入力しても800と表示されるだけです。

参考書によると、ifの使い方に問題があるのかと思いますがどうしても解決しません。
参考書片手に作成しましたがこの問題を解決していただけないかと質問に投稿させていただきました。
何卒解決の道筋を教えていただきたくお力をお借りします。宜しくお願い致します。

商品の受注入力をエクセルで管理したいのですが、商品には1商品1単価のものと、1商品5単価のものが存在します。商品・価格一覧は以下の通りです。実際の表は500行ほどあります。
(商品・価格一覧表)
code size P① P② P③ P④ P⑤
 1 S 20
 5 LL 1000 900 800 700 600

(受注枠)
code  数 size  -- P--  total
 1  5  S  20  *1  100
 5  3  LL  800  *2  2400

受注枠には、商品となるcode番号と 受注数量を入力すると一覧表からsizeと単価が引けるように...続きを読む

Aベストアンサー

よく分からないのですが、こんなので参考になりますか。
K2セルに次の式が入っています。

【K2セル】=HLOOKUP(J2,A:G,MATCH(I2,A:A,0),TRUE)

QIF関数とMODで、例えば入れた数値の倍数の時に◯が表示される……という数式を作りましたが、1.1の

IF関数とMODで、例えば入れた数値の倍数の時に◯が表示される……という数式を作りましたが、1.1の時に本当だったら1.1、2.2、3.3、4.4、5.5、6.6、7.7……で◯になるはずなのですが、10以下の数値を入れてみると、3.3、5.5、6.6、7.7、9.9は◯の表示がでてきません。
1.1、2.2、4.4、8.8しか◯が出ません。
どうしてでしょうか?

Aベストアンサー

幼稚な言い方だけど、Excel(に限らないので、PC全般的なことと理解してネ)は“小数点の計算には弱い”と理解しておきませう。
理屈っぽい人はフドーショースーテン(浮動小数点)問題などど言い始めますが・・・
それはさておき、対策を教えます。カンタンなことで、小数点抜きの整数に換算して、Excel に計算させることです。
貴方が提示した式(実はナッチョランでしたが)、を
=IF(MOD($A2*10,B$1*10)=0,"◯","")
に変更するだけで解決します。ゴチャゴチャ考えずに先ずは実行してみること!
どうなりましたか?

Qエクセルのデータ抽出方法を教えてください

下記のような表から、A列のコードをもとにして「D」列の「3」行目の100、200、300(ピンク色)のセルを参照したいのですが関数がわかりません。
別のシートに10000なら100、20000なら200と表示させたいです。
vlookupでは行が1行でないとできませんでした。

Aベストアンサー

以下でいかがですか。
H2 =INDEX(E2:E13,MATCH(G2,A2:A13,0)+1)


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

人気Q&Aランキング

価格.com 格安SIM 料金比較