Excel総合相談所 131

▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━

前スレ
Excel総合相談所 130
https://find.5ch.net/search?q=excel

Excel VBA 質問スレ Part51(1000到達済み)
https://find.5ch.net/search?q=excel+vba

【質問不可】Excel総合相談所スレの雑談・議論スレ4
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80

▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意。
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでこのスレでは回答が得られにくいです。
  ここで聞くよりもVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチは嫌う人が多いのでなるべく避けましょう。マルチをすると、逆に回答は得られにくくなると思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。

Excel総合相談所 130
https://mevius.5ch.net/test/read.cgi/bsoft/1514074303/

Excel VBA 質問スレ Part51(1000到達済み次スレなし)
https://mevius.5ch.net/test/read.cgi/tech/1510107990/

【質問不可】Excel総合相談所スレの雑談・議論スレ4
https://mevius.5ch.net/test/read.cgi/bsoft/1489108851/

【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

グラフの範囲を都度更新して、最新10ロットのグラフを作ろうとしてします。
範囲をOFFSET($C$4,0,0,COUNTA($C$4:$C$10000),1)のようにすれば、
最新データもすぐにグラフに反映されますが、データが多くなった時
範囲がどんどん広がってしまいます。
なので、OFFSETの基準を最終行、範囲を基準場所から-10行みたいなことを
考えているのですがうまくいきません。
どなたか、アドバイスを頂けないでしょうか?

よろしくお願いします。

>>4
基準を最終行から-10、範囲を10行にしたほうがやりやすいような気がする
C4がデータの開始位置だとして
=OFFSET($C$4,MAX(INDEX(($C:$C<>"")*ROW($C:$C),0))-10-4+1,0,10,1)
みたいな感じにして
これを名前登録してデータ系列に指定すればいいんじゃないかと

【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A1に6、B1に2が入力してある場合、C1に=A1+B1と入力したら8と表示されますが、
6+2と表示するようには出来ませんか?

ふたつのセルの数値をテキストに変換し、"6"と"+"と"2"を結合するって事で良いの?

>>6
=CONCATENATE(A1, "+", B1)

B1が負だったら-にするとかは?

好きにしたらええがな

11名無しさん@そうだ選挙にいこう2018/04/18(水) 06:30:29.28
パーセンテージの計算したい場合ってどうやったらいいんですか?
例えば500+50%は普通に計算したら750になりますけど
excelでやると500.5になっちゃいます
あと例えば
A  B  
1  5
2  0
3  70%
4  4
5  10%

C5=入力欄

でC6に
=500+VLOOKUP(C5,A1:B5,2,FALSE)
みたいな感じで入れた時
C5=1の時505
C5=3の時850
ってちゃんと計算してほしいんですけど
方法ありますか?

シートのいろんな箇所に日付が記録されていて
複数の列にあるのでソートはできない
日付の実体はシリアル値

ある特定の日付をシート内から検索したくても、
文字列で検索しても見つからない
シリアル値でも同様

仕方ないので、全体をコピーして、一旦テキストエディタに貼り付けて検索してるけど、
もう少しましなやり方は無い?

>>11
良くわからんがvlookに500掛けたら?

>>11
そもそも%が分かっていない
パーセントに換算するとこうなる
A  B  
1  500%
2  0
3  70%
4  4
5  10%

ちゃんと計算の「ちゃんと」がさっぱりわからんが
=if(VLOOKUP(C5,A1:B5,2,FALSE)>1,500+VLOOKUP(C5,A1:B5,2,FALSE),500*(1+VLOOKUP(C5,A1:B5,2,FALSE)))
とかでいけるんじゃないか
150%とか来たら終わるけど

%で思い出したが、「百分率だから100を超える値は存在し得ない」とか戯言抜かすアホがいた

>>11
>例えば500+50%は普通に計算したら750になりますけど
電卓の % は直前の値の割合を考えるけれど、excel含めそれ以外の場合は単純な百分率としての数字
だから電卓の場合はいきなり50%、= と入力すると 0 になるけれど、直前に500があると 500 + 500*0.5 = 750 と計算してくれる
excelの % というか割合の計算は 500 * (1 + 0.5)

>ってちゃんと計算してほしいんですけど
表計算ソフトの利便性はいろいろあるけど、一度に大量の処理を手早く行えるようにしたほうがいい
B列に整数が来たら和算、小数だったら割合を と場合分けができないわけじゃないが
100% の場合は…と複雑になって手間ばかりがかかるので
目的や要素に合わせて行や列を分けるべき

17名無しさん@そうだ選挙にいこう2018/04/18(水) 18:22:02.07
>>13
>>14
どうもです
「500」と固定数値ならそれでいけるかもですが
実はこの500の部分が変数なんです
だから10540がくるかもしれないし、413がくるかもしれないし、109がくるかもしれないで、融通が利かないわけです
さらに他のセルの変数の部分にもそれが入ってたりで

>>16
つまり、無理ってことですかね?
行や列を分けるっていうのは、例えばどんな感じにですか?

>>17
0以上、1未満は比率として認識するのか?
それとも数値の場合もあり、比率の場合もあるのか?
1以上の数値は比率になる事はないのか?
ここら辺が曖昧なので判定するフラグが必要。
フラグ立てればifで分ければ良いかと。
無ければ多分無理。

>>15
ある意味あたってる
確率と割合が同じパーセントだからおかしくなるのが根本の原因なんだよ
全然別物なんだから別の単位にするべきだった

>>17
後出しはやめとけ
相手にされなくなるぞ

電卓のように
1+2*3=7
にしたいのでしょう

CELL(“format”,B1)でセルの表示形式が百分率だったら”P0”が返ってくるから処理を分岐させれ


>>13
VLOOKUPをVLOOKと略すな
お前の親を殺すぞ

シフト表を作っているんだが
ガントチャートでその日の出勤者と出勤時間をグラフで出したシート(1とする)と
一ヶ月分の各希望シフトを入れて適宜削っていくシフト表(2とする)を作ったんだ。これは番帯別に四枚ある
2の方は全部埋めたんだが1に入力するのに2を見ながら手作業だと時間もかかるしミスもでる。

そこで2から1へ その日の出勤者名と出勤時間を抽出したいんだけどどうすればいいかわからないです

中身がわからないと何とも・・・

質問させてください。

下記表があるとして、

ttp://iup.2ch-library.com/i/i1903018-1524140268.png

B6:G14の本データからsumif関数を使ってC18にC8&#12316;F8の合計(データ上の数値は5+6+7+8)である26を入れたいんですけど、そもそも関数の仕様上無理なのでしょうか?
初めから合計値が分かって入ればvlookupを使って引っ張った方がいいのでしょうか?

よろしくお願いします。

>>24
sumifはそういう関数じゃない
普通はsumproductを使う
=SUMPRODUCT((B7:B14=B18)*(C7:F14))

というか、sumif使おうとしてる割に書いてる中身もおかしい

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
条件)選択肢a〜d、複数回答可。全体50問
上記のようなアンケート集計をする際に、フィルタをかけた上で設問毎にa〜dの回答数を集計する方法を探しています。
フィルタを考慮した上でワイルドカードを使ったcountifが使えれば問題ないと思うのですが、その方法がわかりません。
sumproductを使う方法はネットで見つけたのですが、ワイルドカードを使うとうまく検索してくれません。
VBAは使えませんが、必要なようなら勉強します。
わかりづらいと思いますが、ご教示お願いいたします。

28名無しさん@そうだ選挙にいこう2018/04/19(木) 23:53:44.73
>例えば500+50%は普通に計算したら750になりますけど

なんねーだろ

>>25
お早い返事ありがとうございます。

=SUMPRODUCT((B7:B14=B18)*(C7:F14))

これを展開すると、B7:B14の範囲でB18と同じ値であるB8の行から、C7:F14と
同じ行の値であるものは1つしかないため、
C8*1+D8*1+E8*1+F8*1と返ってくることですか?

>>27
名前 a b c d
山田 1 0 1 0 
鈴木 0 0 0 1

山田はaとc、鈴木はdという意味
この形ならフィルタだろうが集計だろうが行けるよ
1セルに「a,c」のように書いてるなら作り直したほうが良い

>>28
おそらく、>>16が言うように元々は電卓使いだった人なんだろう

>>29
ざっくり言うとそんな感じだけど、厳密に言えば該当しない場所も結果0として計算されてる。
まぁ気にしなくてもいい

>>27
作業列=SUBTOTAL(3,隣のセル)
集計=COUNTIFS(略,略,作業列,1)

>>30
実際のデータは選択肢と回答数がさらに多く、いろんな意味でその集計方法は敬遠していました。
ちなみに、おっしゃるように1つのセルにカンマ使ってまとめておりました。
どうしても見つからないと、やってみます。

>>33
作業列の"隣のセル"が理解できません。
>>30のような形で各選択肢ごとにフラグを立ててそれを集計する理解でよろしいでしょうか。

35名無しさん@そうだ選挙にいこう2018/04/20(金) 14:48:29.55
1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

数式の意味を教えてください

=IF(ISERR(FIND("東京",B10)),"",1)
この数式では、B10に"東京"の文字列が含まれている場合1を返してくれますが、

=IF(FIND("東京",B10),"",1)
では、B10に"東京"の文字列が含まれてても1を返してくれません

なぜなのでしょうか

>>35
IF関数の最初の引数は真偽値ですよ

>>35
当たり前だろ

>>35
上のはエラー判定。エラーじゃない(東京があれば)なら1。
下は例えば3文字目から東京があればfindは3を返す。
上にもあるようにifはtrueかfalseの判定で結果を返すので答えが出ない。

>>35
色々突っ込みどころ満載だけど、とりあえず質問にだけ答える

=IF(ISERROR(FIND("東京",B10)),"",1)
こっちは、『FIND("東京",B10)』の結果が
エラーだったら『 (空白)』、1以上の数値なら『1』を返す式
※find関数は該当する文字がないとエラーになるのでISERRORを入れてIFで分岐させてある


=IF(FIND("東京",B10),"",1)
こっちは、可読性が低い・・・というか式が成立してない書き方になってるけど一応結果的には、
『FIND("東京",B10)』の結果が1以上なら一応『 (空白)』は返す式にはなってる

該当する文字がないとfind関数の時点でエラーになって、ISERRORなどでエラー処理されてないからIFの分岐にたどり着けずにエラーがそのまま返されてしまっている
IF計算にまで辿り着けてないから、正直『,1』って書いている意味はない


質問とは関係ない事だけど、2016なら大人しくiferror使えばいいのにと思ってしまうw

長々書いてる間に他の人が答えてくれてた
恥ずかしい・・・

恥じることは無い 立派だ 堂々としていろ

>>40
気にするな、今回は何も恥じることはない
遅れた上で無駄な数式をお披露目+重い+若干中二病入った回答
をするよりよっぽどいいぞ

てめー俺のこと言ってんのかあ?

>>39
いい回答だよ!
支持する!

正直iserrorを使ったためしがない
iferrorがすでにあったから

エラーのセルとの比較は常にfalse?

>>45
IFERRORを使いこなしてる人はそうかもね
ISERRORはエラーのロジックを理解せずエラーを隠す関数ともいえる

findで文字列の存在確認だけしたいならiserrorかな
それ以外はiferrorで良い

これをきっかけにiserrorも使ったら便利な場面もありそう
それ系でifsに関して、まだ踏み込めず結局ifにしてしまってる
いつもifs使い始めるんだが結局途中にand か orを入れるから安直に慣れてるifを使ってしまう
端的にこういう場合はifs使え!を教えて欲しい

>>49
>局途中にand か orを入れる
ような場合

>>50
雑〜w

>>36
>>38
>>39
ありがとうございます!

>>39
新たな発見でした
ありがとうございましたm(__)m

>>52
こんな関数あるんだーって知った時も、Excelが楽しく感じる時だよねー

>>50
じゃifs使ってみらー

>>54
おう
伊達にMSもアホの集団じゃないぞ
使いやすいと思っているから実装してる。俺も使いやすいから使っている

とりあえずvlookupは廃止してindexmatch()をはよ実装してくれ

後方互換性を保たないといけないので、Excelという名前である限りそんなに便利にはなれない
変なショートカットキー、変なメニュー構成、変な関数仕様
全て使いもしない過去の軛

>>53
NETWORKDAYS( )関数を知った時はこんな関数まであるんだって思った
関数名は今でも謎だが

>>55
別にvlookupも残しててもいいのでは?
ちなみに…実装するって?
今でもindexmatch使えるけど…

>>58
まぁVLOOKUPは絶対になくならないよ、俺の願望だ
木にするな

vlookupのデフォルトをfalse側にして欲しい
trueで使ってる奴なんているのか

でもほら某Tはtrueで爆速とか言ってる
俺もぜってー使わんけど

>>61
そう
極めに極めれば、爆速で使えるが・・・
大半の、下手すれば億単位の人間が遅いまま使ってるのだろう

>>62
まずキー列を昇順にでけんわ
あとそんな実際時間かかってないから今のとこいいわ

会社で当日の出勤者を横に並べて表示させたいんですが、縦に日付、横に社員が並んでて出勤の場合は空欄、休みの場合は休となっているシフト表とリンクさせるにはどうすればよろしいでしょうか?

>>64
元の表を詳しく書かなきゃ回答できん

66名無しさん@そうだ選挙にいこう2018/04/23(月) 10:52:17.05
>>65
ID変わりましたが>>64です
https://imgur.com/a/BOjZFre
これで正常にアップロードできてますかね?
即席で作成したので適当ですが、4/23ならBCD、4/24ならBCと当日の出勤者を横に並べて表示させたいです。

元号が変わるのには即座にUpDateなどで対応してくれるのだろうけれど
そのUpDateの対象となるバージョンはどれ以降だろな
OSも古いとUpDate入ってこなかったりするだろな

古い機種、アプリ用にはダウンロードサイト用意したりするのかな
マシン本体の買い替え需要が暴騰かな  一気にWin10のシェア上がるかな

>>66
名前を左に詰めるとなると面倒だな
作業列使いまくるかVBAか

>>66
http://fast-uploader.com/file/7080045002469/
こんな漢字じゃあかんのけ

詰めるのは意外と難しいな
どういう数式になるんだ?countifとchoose使ってみたけどわからんかった
vbaなら一瞬で終わるんだけど

>>66
すでにレス付いてるように、左に詰めないのが現実的。
4人と決まってるなら、ifで力技でも出来そうだけどスマートではない。
自分ならvba使う。

>>66
http://fast-uploader.com/file/7080049995561/
これなら左詰でいけるはず
列が(人が)増えても対応できるようにしておいたので参考にどうぞ

やっぱり配列になるよね

>>66です。みなさんありがとうございます!>>71さんのでいけそうです!
余談ですが、スプレッドシートだと空白詰めるのは楽にできるみたいですね、Excelは本当に難しい…
vbaも視野に入れて勉強していこうと思います、改めてみなさん本当にありがとうございました!

ちょっと質問!あなたたちはエクセルでゲーム作ろうとしたことある?けちんぼしないで教えて!

>>74
すまん、ある
vbaがゲームに全く向いてないとか知らないじゃ〜ん

76名無しさん@そうだ選挙にいこう2018/04/25(水) 16:16:30.01
Excel2010を会社のパソコンで共有してるのですが
上司がずっといないので更新の仕方がわかりません。
どうやってやるのですか?

>>76
そんなレベルで勝手に更新されても上司が困るだけ
そのまま使っとけ

78名無しさん@そうだ選挙にいこう2018/04/26(木) 05:19:00.08
>>77

更新と言っても、ソフトを更新ではなくて
情報を更新したいんです。(アルバイトのシフト表)

>>78
意味がわかりません。
たぶんここで聞いても誰も分からないと思います。

それこそ中身みないと何とも

>>78
いや、だからそんなレベルの奴に勝手にデータの更新されたら上司はもっと困るわけで...

確かに。
Excelがどういうものかよく分かっていない感が・・・
何にせよ、そんなざっくりすぎる質問じゃ答えようがないよ

>>78
むしろ自分でも>>76を見ただけでシフト表の更新がしたいと理解させることができると思ったの?
みんなお前と同じ感覚を持ってる訳じゃないから考えを改めたほうがいいよ

単に綺麗に表が印刷できるソフトとして使ってるだけだから、
手書きで作っても同じだよ

ボスのUSBに入ってる感じするわw

先ず、上司に聞け  上司がずっといない 失踪ならもっと上の上司や家族に連絡しろ 警察にもか
「上司がずっといない」からわからない そうだ!2chで聞こう  って発想がもうね
発想だけなら妄想と一緒で誰しもするが、実行しちまう自分を疑え

「上司」ってのはホントはウソで、出入りの業者が潰れたとか連絡取れない ってなら、構造見せなきゃ誰もわからん

実はゴミクズのように使ってた派遣が失踪じゃない?
自分が無能上司

みんなボロクソ正論わろたww

Excelの2010を使ってるんだけどさぁー
たまぁーにデータ入力した時に
罫線とかセルの背景色とか
いわゆる書式?全部かどうかまではわからんけど
上にあるセルと同じ書式が自動的にコピーされてくる場合があんのよ
ほんとたまぁーにしかならない
けどどんな時に起きるのかもわからない
誰か詳しい人がいるならよぉー

ど う い う 時 に だ け そ う な る の か

教えてくんねーかなぁー

データ範囲の形式および数式を拡張するがONになってるとそうなる
こんなもんは最初にOFFる

どういう時にそれが形式だと判断するかは、確か3つくらい連続してたら
そうなった気がする

>>78
仕事できないのが手に取るように分かるわ
使えないってバカにされてるでしょ?

流石にもう終わっとこうや・・・

>>90
慣れると使いやすいんだけど、慣れるまでが意味不明なんだよな

更新って、F9押すだけの話じゃないの?

95名無しさん@そうだ選挙にいこう2018/04/27(金) 09:58:46.75
教えて下さい

納品書を作成していますが、
クライアントから、
月ごとに動いた分が分かるように追番をつけたいという要望があります。

現在、1シート目に
受注日・納品日・会社名・担当者・電話番号・住所・個数
などを入れる表があり、
そこに入れると、
2シート目に、納品書のひな型があるのですが、
そこに自動で、1シート目の項目が反映されます。

このエクセルは、年度ごとの更新であり、
1シート目も2シート目も、4月から翌年3月まで、
ひたすら後段して入力していく形態です。
月ごとにシートを分けたりしません。

要望として
18年5月12日納品 5月としては3回目の納品なら、
18051203 あるいは 180512-03
としたいです。

ちょっとわかりにくい説明ですが、
是非アドバイスをお願いします。

1シート目がリストで、2シート目が納品書1枚分ということ?
っていうか、2枚目が自動生成なら、そこに入力はしないのでは?

今の納品書に伝票番号ないの?それちょっとすげーな

シート1で何行入れようがシート2でちゃんと納品書の明細に収まる
ような「自動」 かどうかが判らんが
シート1に納品書の連番列を追加すりゃいい 追番 が一般的な用語かどうか知らん
納品書番号とか連番とかのがググり易い気がすr

一ヶ月で連番、得意先ごとに連番、担当ごとに連番 とかいろいろあるだろうが 工夫

>>95
シート1から作り直すというか、項目を追加して修正しないとダメだと思います。
まずシート1にその月の連番になる部分を、列として作る。その例でいうと02とか、03とか。
そこは関数で自動でできると思うけど。
で、それを元に納品書Noみたいなの作る。
それを、シート2にvlookup関数等で反映させる。

100952018/04/27(金) 13:05:32.75
>>96
御指摘の通り、2シート目で納品書が自動で切る状態です。
ただ、そうした設定を設けたい、目で見ることができるようにならないかということです。
>>97
伝票番号はありますが、
その番号とは別に、設定したいのです。
うちの伝票番号は、納品月などが一目瞭然というものではないので、、、

新着レスの表示
レスを投稿する