Excel総合相談所 139
■ このスレッドは過去ログ倉庫に格納されています
【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
よくWEBページとかの検索バーみたいに「ここに***を入力してください」とか書いてあって
クリックして編集状態にすると消える薄い文字を、エクセルのセルでも再現する方法はありますか? >>4
条件付書式で、条件式を =A1=" " の様に、表示形式を ;;;"ここに***を入力してください" 、 フォントの色を薄く設定する
あらかじめ、A1 に半角spcを入力しておけば、細かい事を気にしなければ、だいたいそんな感じになるよ それの名前はプレースホルダー
>>5
すげぇ、よく思いつくなぁ 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
A1セルに数字が入力されていたらB1セルにドロップダウンリストを表示させたいです。
A1セルが空白ならリストを動かないようにもしたいです。
宜しくお願い致します。 >>9
A1が文字列の場合が書いてないけど、2行目から空白と同等と判断して
=IF(ISNUMBER($A1) , リスト , NA())
右端の矢印が消えないのと
配列定数が使えない様なので、元の値にリストの内容のべた書きができないこと
あと、元の値は〜 のエラーが出ても気にしないで続けること 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 必要なら
オンラインの学校で、会員が月に何回レッスンを受けたかエクセルで管理しています。今までは手作業でしたが、最近生徒数が増えてきたので関数を使って簡単にできないか考えています。
https://i.imgur.com/tLlM36r.jpg
このような会員のレッスン受講記録csvを管理者用のページから落とせるんですが、そこから会員毎にレッスンを受けた日付を抽出して下のような表を作りたいです。
https://i.imgur.com/b6UmuPS.jpg
できる方法があったら教えてください。 >>11
こういう、不特定な個数のデータを上とか左に詰めた表はVBAを使わないと無理
1人で複数のコースを受けた時はどうやって並べるの? >>12
関数だけでは無理ですか…
2つ目の画像のコースというのは気にしないでください >>14
ありがとうございます
ただ、1日に複数回受けられるので、これだと漏れが出てしまうかと >>14
俺もこうする
複数受けれるなら○ではなく回数を表示するようにして受講数をsumで出せば良い 自分ならcell関数をつかってシート名を年 月にしたらその月のシートになるようにする >>16,17
まだ初歩的な関数しか分からず作り方が分からないので具体的に教えてくれませんか? >>15
こんな感じで1日の回数を入れれば簡単
COUNTIFとSUM関数だけで集計できる
https://i.imgur.com/qEY41EU.png キャンセルで思い出したが、ストIIみたいに誤操作をキャンセルしてくれないかな。
よくあるじゃん。セルをダブルクリックしようとしたら、全然関係ないセルに飛んで行っちゃうとか。 条件が3つないし2つあるから、COUNTIFSならともかく、COUNTIFじゃむずかしいと思うぞ
時刻まで入ってるところでも、微妙に難易度が上がってる E7に=IF(回数<n回目,"",AGGREGATE(small,エラー無視,(姓名条件)*開始時刻*(キャンセル条件),n番目))
回数はSUMPRODUCT((姓名条件)*(キャンセル条件))
具体的にはE7に
=IF(SUMPRODUCT((csv!$G$1:INDEX(csv!$G:$G,COUNTA(csv!$G:$G))&" "&csv!$H$1:INDEX(csv!$H:$H,COUNTA(csv!$H:$H))=$B7)*(csv!$M$1:INDEX(csv!$M:$M,COUNTA(csv!$M:$M))=0))<E$6,"",
AGGREGATE(15,6,INDEX((csv!$G$1:INDEX(csv!$G:$G,COUNTA(csv!$G:$G))&" "&csv!$H$1:INDEX(csv!$H:$H,COUNTA(csv!$H:$H))=$B7)*csv!$K$1:INDEX(csv!$K:$K,COUNTA(csv!$K:$K))*(csv!$M$1:INDEX(csv!$M:$M,COUNTA(csv!$M:$M))=0),),E$6)) >>19の表だと、E2に
=SUMPRODUCT((CSV!$F:$F=$B2)*(E$1<=CSV!$K:$K)*(CSV!$K:$K<E$1+1))
の様な感じでできるけど、すごく重くなるから
CSVシート側の行範囲は $F2$F10000 の様に限定した方がいいかもしれない >>24
誤操作かどうかPCは分からない
その機能に関して言えば一生使わないので、最初から無くていいわ そういや誤入力を戻すボタンはあるが、誤操作はないよな。 誤操作かどうか本人しかわからんのにあるわけないだろ >>11です
色々教えてくださりありがとうございます sharepointのリストをExcelのテーブルに一方通行のリンクをさせています。
質問
Excelで修正した既存レコードをすべてsharepointのリストに上書きする方法があれば教えて下さい。 >>31
00000000001って、0を10回入力しても、
うん、この0は要らないよねって、勝手に判断して消しちゃうくせにか?www 頭に0付ける設定してなきゃ付けるわけないだろ
そしてその設定をしてないのがお前のミスかどうかなんてExcelが知ったこっちゃないわ >>28の方法で>>19の表が作れました
>>27は自分には難しくて上手くできませんでした
もっと勉強します
ありがとうございました 【1 OSの種類 .】 Android8.0
【2 Excelのバージョン 】 アンドロイド用Excel
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
別シートにあるn行目のAn:CCnまでといった具合にコピペしたいのですが
どうやったらいいのでしょうか?
PCでXLOOKUP使って作ったんですがアンドロイドアプリでは使えなくて困ってしまいました 【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
以下例1、例2のような文字列が1つのセルに入力されています(改行まで含めて1つのセルです)。
そこから別のセルに、2586(や1531)などの4桁の数字を抜き出したいです。
find関数で最初に出てくる数字までの数を抽出し、LEFT関数を駆使すれば可能かと思うのですが、
上手くいかず苦慮しています。
何卒お願いします。
例1)
織田信長
2586 攻1 兵士
例2)
豊臣秀吉
1531 攻99 将軍 >>40
何がわからないのかと思ったら、A〜CCという事で、範囲がでかすぎるのか
試しにAndroid版落としてみたけど
右下の▲->範囲の選択で、アドレス入力でのセル範囲選択ができたよ
シート名の指定は出来なかったから、左下のシートタブっぽいアイコンをタップして、シート移動する必要はあるみたい
右クリックメニューに相当する奴は、ロングタップで出たよ
XLOOKUPもfx押したら出てきたから使えそうだったけど >>42
ありがとうございます
コピペと言いましたが直近3日分のデータをリンクした図で出すために
列ごと抜き出したかったのです
私の勘違いでした
Android版で使えないのはXlookupじゃなくてリンクした図の方でした・・・
お騒がせしました >>43
ありがとうございます
これが一番シンプルに出来そうです
まさに目からうろこです
>>45
ありがとうございます
以下のように名前が5文字の場合もあるので、
MIDでは何文字目(織田信長なら5文字目、龍造寺隆信なら6文字目)から4文字とっていいか指定する必要があり、
その何文字目をとるには『はじめてでてきた半角数字』をFIND関数でとるのかなと考えています
例3)
龍造寺隆信
4432 守20 門番 >>46
改行の次の文字から4文字でいいんでねーの >>46
改行はch※ar( 1 0)という文字だから
substitut(データ、ch※ar(1 0)、“”)
という関数で除去しよう
それからtrim()
で要らない空白を削除して表記揺れを抹殺だ
※は、書き込むときエラーが出るからあえていれてる >>48は素なのか教えるふりした嫌がらせなのかどっちなんだ… =MID(A1,FIND(
CHAR
(10),A1)+1,4) >>48
出来ましたぁ〜〜〜〜〜!!
ありがとうございます
解決です
皆様、本当にありがとうございました >>49
ごめん、改行は半角空白で置換すべきだった >>53
データ区切りと組み合わせてつかってもらうつもりだった
わかりにくくてごめんね 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】はい
【4 VBAでの回答の可否】 必要なら
配送の仕事で
一件配達して基本料金300円
荷物が増えると100円増し
というものがあります
配達先1件なで10個持ち出すなら
1300円になります
請求書は
内容 単価 金額
となりますが、単価の書きようがなくてこまっています
日付 内容 単価 金額
20/05/18 配送( 10件100個) 13000
となります
どのように単価を書いたらいいでしょうか?
このような場合は単価は空欄ですか?
毎日たくさんあるので基本料金と追加料金をわけてかくと3 枚とかの請求書になってしまいます >>55
それってExcelの使い方とまったく関係ない伝票の書き方の問題では
その説明だと、1個=300円、2個=400円、、、10個=1200円にも見える
1個=400円、10個=1300円が正しいのなら単価は100円だから、書式が決められてないのなら、俺ならこう書く
日付 内容 単価 数量 金額
5/18 客1基本料 300 1 300
5/18 客1配送料 100 100 10000
5/18 客2基本料 300 1 300
5/18 客2配送料 100 50 5000
合計 15600 もし請求書の枚数を減らせと要求されたんならフォントを小さくしたり行間を詰めて1枚に印刷してやれ
あとは、基本料が完全に一律ならこう書くこともできる
日付 内容 単価 数量 金額
5/18 基本料 300 2 600
5/18 客1配送料 100 100 10000
5/18 客2配送料 100 50 5000
合計 15600 どうしても1軒を1行で書きたいなら
日付 配送先 基本料 単価 数量 金額
5/18 客1 300 100 100 10300
5/18 客2 300 100 50 5000
合計 15600 >>58
細かく教えてもらってありがとうございます
定形用紙なので基本料を書く欄がないんですよね >>59
内容の所にいちいち「基本料@300含む」て但し書きして、計算式を=300+単価*数量にしとけばいい この料金体系化だと、
1件1個頼んだら
400円?
それを2回個別にお願いしたら
800円? こんな感じみたいだね
そもそもこのタイプだと単価と数量自体いらないと思うけどね
単価は価格と同じだし数量は必ず1なんだろうし
https://i.imgur.com/nQZlUMJ.png 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 それしか方法がないのであれば
A1にプルダウンで文字列を選択、選択した場合はA2に数字を入力します
プルダウンと数字入力は複数あり、A列だけにありますが行の位置はランダムです
例えば、
A5(プルダウン),A6(数字入力)
A9(プルダウン),A10(数字入力)
A13(プルダウン),A14(数字入力)
A20(プルダウン),A21(数字入力)
A24(プルダウン),A25(数字入力)
です
プルダウンで「みずほ銀行」「住友銀行」など銀行の種類を選ばせ、数字入力で残高額を入力します
同じ銀行が複数回選ばれることもあります
「みずほ銀行合計残高額 1,258,000」「住友銀行合計残高額 25,099」など、各銀行の残高合計金額を出す計算式はどうやったらいいでしょうか? >>67
「残高」というとわかりづらいかも
単純に数字とか金額と考えてください ここID出ないのか
>>68は>>67の質問者が追加で書きました >>67
どこに残高出したいのか知らんけど銀行毎の入力された合計出せば良いだけだし、VBA使わんでも関数だけでいけんじゃね? >>70
銀行毎の合計金額は、みずほ銀行合計はC30、住友銀行合計はE35など適当な場所に指定します
関数でいけそうですか
プルダウンで選んだ銀行毎の入力合計の出し方がどうやっていいかわからなくて悩んでいます >>67,71
作業列を使っていいですか?
ISNUMBER関数で作業列(その1)に数値を、
(その1行上のセル対象の)ISNUMBER関数で作業列(その2)に銀行名を
並べて配置したら、あとは別のセルに銀行名とSUMIF関数で出せると思う。
Excel2010で、SUMPRODUCT関数で集計範囲と条件範囲を同じ列の
1行ずらしでいけるかな?と試したら、ダメだった。
作業列その1をB列、その2をC列とし、
B2セル =IF(ISNUMBER(A2),A2,0) として下方向へコピー、
C2セル =IF(ISNUMBER(A2),A1,"") として下方向へコピーして、
適当なセル(例:D1セル)に銀行名を入れて、E1セルに合計を出したい
のであれば、
E1セル =SUMIF(C2:C10,D1,B2:B10)
でいけそうです。 >>72
アドバイスありがとうございます
プルダウンに入る銀行名は今の時点で別のシートに作業列としてあります
実際は銀行の金額以外も入力してもらう項目が複数あるので、作業列に数字を入力してもらうというのは無理なのです
色々考えていただいてありがとうございます プルダウンの1つ下に入ってるなら、こんな感じ
=SUMPRODUCT((A1:A1000="みずほ銀行")*1 , A2:A1001)
第2引数の範囲は、第1のと1つずらして大きさを同じにすること
でも、同じ列に異なる項目を混ぜるようなやり方は、集計が大変になるだけだから、できれば避けるべきだとは思う
どうしても必要なら、表示用シートを別に作るべき >>74
72です。「1行ずらしでいけるかな?と試したら、ダメだった」と思ったら、(範囲と条件)*1でできるんですね。
自分は =SUMPRODUCT((A1:A1000="みずほ銀行")*(A2:A1001)) みたいな方法でエラーになったため、
ダメかと思いました。ありがとうございます。 >>74
ありがとうございます
今Excelが触れない場所にいるので明日やってみます
もともと計算式なしの表として利用していたものだったのでこんな複雑なことになってしまいましたが、同じ列に異なる項目はやはり避けるべきですね 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
セルに数値を入力し、それを元にVBAで処理するものを作っています。
セルに範囲外の数値や文字を入力した際に、色を変える処理をしたいのと、
VBA側でも処理をしないようにしたいですが、アドバイスお願いします。 >>77
色は条件付き書式で変えればいいし
vbaの処理は普通にifじゃいかんのか >>77
リボン>データ>データの入力規則 で、数値や日付の範囲を
設定(当然、文字は入力を受け付けない)できますよ。
入力を受け付けないときのメッセージも自分で設定できます。 >>74
試してみたところバッチリ思った通りに動きました
本当に本当にありがとうございました! B:\○○係\abc\def.xlsx
(B:\は、ネットワーク共有フォルダ)
コレに対して、
=B:\○○係\abc\def.xlsx............
とシートを同期させている別のエクセルファイルがあります。
このようなエクセルファイルが10個位あります。これらをローカルディスクに落とすと、1個くらいC:\○○係\abc\def.xlsxというリンク元に何故か変わってしまっています。
全部のファイルがそうなら、なんかわかるのですが、1つだけだったりします。
一体何が起こってるんでしょうか???
相対パス、絶対パス
何だろうとは思うんですが、
では、なぜ同じやり方でリンク貼っているのに、リンク元が変わらないものと変わってしまうものが発生するのでしょうか? >>81
リンク元とリンク先が同じ階層にあるとして・・・
リンク元を移動させ、一度保存→リンク先を移動、という操作をするとリンクは更新されない
両方一度にコピーし、リンク元を起動するとなんでか同じフォルダでリンクを更新してくれる
おせっかい機能かバグかはよく知らない。なんとなくバグくさい >>82,83
ありがとうございます
ここまでわかれば、自力で何とかできそうです >>83
なんとなく内部的に保持してると思ってたけど、実際にそうしてたのか 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 Excelが使えるか .】 はい
【4 Excelでの回答の可否】 可
SendKeysよりUIAutomationの方がいいらしいので使ってみたけど、
対象がアクティブじゃないとうまくいかないから、
それならSendKeysでも同じじゃね?
確実に操作できるようになるまで、ループ待機入れなきゃいけないのも一緒だし。 それから先の失敗する頻度の差だから、同じか違うかは人によるよ
SendKeysを嫌っている人は、嫌う程度には使ったことがあるんだろ セルに入力規制(リスト)を設定しています。
そのセルに自由入力も許可することはできますか? データの入力規則ダイアログを表示
「エラーメッセージ」タブにある「無効なデータが入力されたらエラーメッセージを表示する」のチェックを外す。 >>89
>>90
ありがとうございます。
思ってた通りの動作ができました。 IF関数を使ってセルの値が0の場合を空白にするときに
=IF(A1=0,””,A1)のようになりますが、同じものを2回書かないといけないため、この式のA1の部分にも関数が入ると数式が長くなってしまいます。
A1の部分を2回書かなくても偽の場合はA1の部分の式をそのまま実行するようなことはできませんか? 長くはなるけどコピペできるし、見た目だけならルールで0の場合文字色を白にすればよいかと #,### か、小数使いたいなら [=0];G/標準 だぞ リスト型の予定表をカレンダーに反映させようとしています<br>
リストとカレンダーは別シートで、同日に予定が1〜3個入る感じです<br>
INDEX+MATCH関数で2番目以降の値を抽出する数式まではできましたが<br>
そこに複数条件の組み合わせる方法がわかりません<br>
=IFERROR(INDEX(リスト日付,MATCH(LARGE((リスト日付=カレンダー日付)*1/ROW(リスト日付),2),1/ROW(リスト日付),0)),"")<br>
ここにリストの「時間」列がAMなら表示、PMなら非表示という条件を付けたいです<br>
よろしくお願いします >>86
SendKeyはクセがアリすぎるから、webで自動操作を行う場合はchromeのコンソールから入力した方が良い
もしくは、開発側にweb開発させる。個人的にはもう、SendKeyは使わないかな
>>96
構造がわからん
サンプルでいいので、ブックごとアップしてほしい
超ざっくりとカンで言うと、スケジュールに「予定時間|AM」みたいにしてそれを条件付き書式で表示分岐させるとか >>96です
https://imgur.com/a/BP2HkJf
画像のアップで大丈夫でしょうか?
1枚目がカレンダー、2枚目がリストです 開始日から終了日までの日数と今日の日付を使って経過日数を求め、それを%表示にする方法があったら教えてください ■ このスレッドは過去ログ倉庫に格納されています