エクセルでのエセ進捗率作成における値が返らない問題の解決方法

このQ&Aのポイント
  • エクセルでエセ進捗率を作成する際に、特定の値が入力された場合に値が返らないという問題が発生しています。
  • 式にはCOUNTIF関数を使用し、指定の条件に一致するセルの数を数えています。
  • しかしながら、最後の条件だけが入力された場合には値が0になってしまいます。この問題の解決方法をご教示いただけませんか?
回答を見る
  • ベストアンサー

値が返らない。

値が返らない。 エクセルを使用してエセ進捗率を作ろうと以下のような式を作りました。 =COUNTIF(I6,"りんご")*1+COUNTIF(I6,"ごりら")*2+COUNTIF(I6,"ラッコ")*3+COUNTIF(I6,"コアラ")*4+COUNTIF(I6,"ラッパ")*5+COUNTIF(I6,"パンダ")*6+COUNTIF(I6,"だるま")*7+COUNTIF(I6,"マント")*8+COUNTIF(I6,"トマト")*9+COUNTIF(I6,"とんぼ")*10 返された値の分だけREPT関数を用いて|(棒)を表示させるようにしました。 しかし、最後のとんぼだけが入力されると0になります。 解決方法がお解りの方は、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

数式が長くなるこのような記述はしない方が良い、例えば、VLOOKUP関数を使用するのが一般的だと思いますが如何でしょうか。(数式が長くなると入力間違いが多くなるし、メンテナンスが大変です) (1)別シートのA列に各入力値、B列に値を設定 (2)値の抽出は、=VLOOKUP(I6,別シート!A:B,2,FALSE) (3)未入力、エラーを考慮すると一例ですが、=IF(COUNTIF(別シート!A:A,I6),VLOOKUP(I6,別シート!A:B,2,FALSE),"") 因みにご例示の数式を貼り付けて実行しましたら期待値が表示されましたので原因は分かりませんが、例えば、計算方法が手動になっているとか?ご確認下さい。

hd2010
質問者

お礼

お礼が遅くなってしまい、すみません。 ご回答ありがとうございます。なるほど、vlookup関数でも出来ますね。 ただ、原因は別にあるのかなぁ、と。 入力規則でリストを使用してそのセルに入った文字列で数字を出していたのですが、10番目の項目を選ぶとエラーになるようです。(手入力ではすんなり入りました) ちなみにエクセルは2007です。 何か理由があるのでしょうか・・・。

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

ちゃんと 10 が表示されますが、とんぼの入力が間違ってるのではないでしょうか

hd2010
質問者

お礼

ご回答ありがとうございます。 入力自体は間違っていないと思います。 入力規則からリストで入力するとエラーになるようです。(きちんと記載していなくすみません)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

COUNTIFが全部間違っているわ。 最初のりんごで説明すると COUNTIF(I6,"りんご") ではなく COUNTIF(I6,"=りんご") こうよ。

hd2010
質問者

お礼

ご回答ありがとうございます。 上記のように入力してみましたが、ダメでした。 入力規則に原因があるんですかね・・・。

関連するQ&A

  • 各ページ、値の大きい順に3件ずつ、表示できるようにし、ページ分けしたい。

    PHP5、SQLite2.8の環境で作業をしています。 ■データ R:大きい順(1,2,3...) I:ID(1987~等) N:名前(りんご~等) R  I  N --------- 1 1987 りんご 2 1789 ごりら 3 1323 らっぱ --------- 4 1045 パイナップル 5 956 ルビー 6 448 ビー玉 --------- 7 311 マントヒヒ 8 259 ヒトデ 9 177 電池 --------- 10 123 ちくわ 11 101 わんこ 12 97 こども --------- 13 64 モモンガ 上記データを、3項目ずつ区切り(※「--------」が区切り線です)、 IDの大きなグループ順に、1ページ目、2ページ目、、、と、 ページ分けしたいのですが、この場合、 SQL文(特に、お分かりになるのであれば、SQLite)では、 どのようなロジックで書き表すことができますでしょうか。 以上、どなたか、よろしくお願い致します。 --------ここから下は、読んで頂かなくても結構です。---------- ちなみに、ID値が「飛び飛び」になっているのは、 ID値の途中の値を適宜削除(DELETE文)していたりするからです。 ID値が飛び飛びではない場合の方法であれば私にも作ることができ、 また、その方法で実際に作って動かしていたのですが、 その後、スクリプトに削除処理機能(DELETE文使用)を加えたところ、 前述の通り、ID値が飛び飛びとなり、 その結果、スクリプトが思わぬ動きをするようになってしまったので、 このような質問をさせて頂きました。 -------------------------------------------------

    • ベストアンサー
    • PHP
  • VBA教えてください。重複データの削除

    エクセルからエクセルへのデータ取り込み、重複データ削除の方法について、とても時間がかかっており、ご教授いただきたいと思い、質問させていただきます。 よろしくお願い致します。 台帳(エクセル)とシステムから出力するcsvファイル(エクセル)があります。 csvファイル(エクセル)のデータを、台帳(エクセル)で管理します。 ‘csvファイル:商品コード、商品名、注文日、納期、などなどA~AZ列まで、1行目は項目名で、その後、1行1商品で2000行ほどデータがあります。 現在進行形のデータが全て出力されるため、台帳にあるデータと重複するものと、新規データがあり、新規データのみを台帳に追加していきたいです。 重複かどうかの判断は、A列の通し番号で判断しています。 台帳:シート4つで進捗を管理しています。 シート(1);csvファイルからデータを取り込むシート      一度出力データ全てを取り込み(※1)、シート(2)、(3)に重複があるデータを削除します(※2)。 シート(2):(1)から次工程にデータを送ったらこちらに移動(0~500行ほどあります) シート(3):(2)から次工程にデータを送ったらこちらに移動(5000行ほどあります) ※1は3秒ほどで完了するのですが、※2は1分近く時間を要しています。 もう少し短くならないかと思うのですが、いかがでしょうか。よろしくお願い致します。早ければ早いほどいいですが、10秒以内を目標にしています。 今は、csvファイルから全データをエクセルに取り込んでから(3秒ほど)、重複削除していますが、csvファイルから取り込むときに、重複データを取り込まないほうがいいのでしょうか。 現状、このような感じです。 Sub 重複削除() Dim i As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual ‘BA列にある重複チェックが2以上のとき、削除 For i = 5000 To 5 Step -1  If Worksheets("(1)").Cells(i, 53).Value > 1 Then Rows(i).Delete End If Next i ‘BA列に重複チェックを再設定 Application.Calculation = xlCalculationAutomatic Cells(5, 1).Select Range("BA5") = "IF(A5="""","""",COUNTIF($A$4:$A5,A5)+COUNTIF((2)!$A:$A,A5)+COUNTIF((3)!$A:$A,A5))" Range("BA5").Select Selection.Copy ‘関数を値へ変換 Range("BA6:BA2000").Select ActiveSheet.Paste Application.CutCopyMode = False ‘行幅を整える Rows("5:5").Select Range(Selection, Selection.End(xlDown)).Select Selection.RowHeight = 15.75 Range("A5").Select Application.ScreenUpdating = True '画面描画を静止 End Sub

  • ある値に対して違う値を返させるには?

    はじめまして。JavaScript初心者のものです。 ただ今、大学のJavaScriptの授業で自由課題に取り組んでいるのですが、 初歩的なところで詰まっています。 タイトルでは少し分かりづらいので、コードを提示して説明いたします。 <SCRIPT language="JavaScript"> <!-- seikaiA = Math.ceil( Math.random() * 4 ); if( seikaiA == 0 ) seikaiA = 1; seikaiB = Math.ceil( Math.random() * 4 ); if( seikaiB == 0 ) seikaiB = 1; if( seikaiB == seikaiA ) seikaiB = ●●●; document.write( '<Table border=1>' ); document.write( '<TR><TD>'+seikaiA+'</TD><TD>'+seikaiB+'</TD></TR>' ); --> </SCRIPT> これは、1~4までの数字からひとつ、整数でランダムに取り出し、 「seikaiA」および「seikaiB」に代入しているところです。 ところがこのままでは「seikaiA」の値と「seikaiB」の値が同じになるケースが当然生じます。 私は両者の値を互いに異なる値として出力したいので、 if文にて、同じになった場合再びseikaiBを選び直すように命令したいのですが、 うまくいきません。 ●●●と書かれた部分がそうです。 どのようにプログラミングすれば、「seikaiA」と「seikaiB」の値を常に異なるものとして出力することが出来るのでしょうか? 初歩的なことを質問して申し訳ないのですが、よろしくおねがいします。

  • 3つの値を1つの値に

    今色を使ったプログラムを組んでいて、RGBの3値を利用しています。 例えば R:157 G:0 B:0 と R:0 G:0 B:157 これらのRGB値を1つの値に計算し、 二つが違う色であることを判別したい場合 どのような計算方法を利用すればいいでしょうか。 よろしくお願い致します。

  • Excel2010で3つの値のうち最も少ない値

    Excel2010で3つの値のうち最も少ない値を返して、もしその値が空白だったらゼロと認識する。としたいのですが、 どのような関数にしたらよいのでしょうか? どなたかおしえてください。 例) A1:3 A2:5 A3:(空白) この3つのセルのうち最も少ない数を返す。 =MIN(A1,A2,A3) だと、値3が返ってしまいます。空白もゼロと認識して値0を返したいのです。 ですが、この3つのセル以外に空白セルを残すため、Excel昨日の「空白にゼロ値を表示する」を使いたくありません。 どうぞよろしくお願いいたします。

  • 値が 18446744073709551615 になる。

    こんにちは、 PHPとMYSQLの連動でサイトを作っています。 会員の情報であるコラムの値がきづくと、 18446744073709551615になっています。 そのコラムは「BIGINT UNSIGNED」で作成してあり、気づくとその数値型の最大値が挿入されているのです。ちなみに正常、今入っている数値はせいぜい100くらいです。 実際にこのコラムの値をPHPでいじるところを調べてみたのですが、さっぱり見当がつきません。 例えば「文字列を入れるとなる」とか「0*0」を入れるとなる。とか、そんなのご存知の方はいらっしゃいませんでしょうか? よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • htmlから値を飛ばすとき?

    現在、あるページをcgiで作成しているのですが、 そのcgiの中のリンクをクリックすると、 そのcgiファイル自身に値が飛ばされてそのcgiのほかの部分を表示する、 みたいなプログラムを作りたいのですが、どうすればよいでしょうか? つまり、ずっとあるひとつのcgiの中にいるようにしたいのですが、どなたかアドバイスくださいーっ><;

    • ベストアンサー
    • Perl
  • √の値のだし方

    √2は1.41421356・・・ですが,√2,√3,√5などを計算で出す方法を教えてください。高校のときに教わった記憶があるのですが忘れてしまいました。お願いします。

  • この値はいったいどこで…??

    毎回お世話になっております、koorigawaと申します。 もう国公立2次の前々日でありますが…そんな今日、変なところに引っかかってしまいまして…。 どうか、知恵をお借りしたいのです><; ハーバー・ボッシュ法  N2+3H2 → 2NH3 についての問題なのですが… 「窒素と酸素を体積比1:3で混合し、370℃、200気圧の状態で平衝状態に達した時、アンモニアの体積百分率を有効数字2桁で求めよ」(←この問題の1つ前の問題で、100気圧の時の圧平衝定数Kp=5.3×10^-4(atm^-2)という値が出ています。平衝定数は圧力が変わっても変化しないので、この値をこの問題で使う…のですよね??こ、ここで間違ってたらどうしよう…) …という問題です。ここで、この問題自体がわからないというわけではないんです…。 この問題文の後に「ただし、√7=2.65、√143=12.0とする」と書かれているのです。 どうやって考えても、私の計算過程にはそのような値は出てこなくて…。 いったい、どこでどのように使うのか気になって仕方がありません^^; この解答には、答えのみしか書かれていなくて…それとも、計算過程を書くほどではないくらい簡単な問題なのでしょうか…??ちなみに、その答えは45(%)です。 わかりにくくて長い文章で申し訳ありませんが、どうかご返答お待ちしております><;

  • ζ(2) の値

    いわゆるゼータ関数のζ(2)の値 Σ1/(n^2)= π^2/6 は、どのようにして導くのでしょうか。 たしか sin の無限乗積展開をつかったような記憶が あるのですが.....。

専門家に質問してみよう